《数据结构》学习笔记--第一章绪论

《数据结构》学习笔记------第一章绪论------主要是对一些概念的梳理


数据结构 = 数据元素 + 数据关系 = D +S

以复数为例子:复数9+i7 , 这里数据元素是9 和 7 , 数据关系是前者表示实部,后者表示虚部;


数据关系 在 算法设计中体现为 逻辑结构

在 计算机实现中表现为 存储结构


存储结构 在计算机中实现时分为 顺序存储结构和非顺序存储结构(链式存储结构)。顺序存储就是按照物理地址的顺序来,不赘述;链式存储通过指针指向的地址来实现,

因此链式存储结构在物理地址上是不连续的。比如9+i7 这里9和7的存储在链式存储结构中是不连续的。

抽象数据类型(ADT)= D +S +P = 数据元素 + 数据关系 + 基本操作

所以数据类型,我认为是在数据结构的基础上,附加了一些数据操作。

比如整数数据类型,就是在整数这个数据结构上附加了加减乘除等操作。

算法 = 原操作 + 控制结构

算法复杂度 T(n) = O( f(n) ) , 算法复杂度用时间来衡量,表现为问题规模n的函数。在实际中我们常常用 ”基本操作“ ”执行的次数“ 来衡量算法复杂度。

算法复杂度有O(1)、O(n)、O(n^2)、O(log(n))、O(2^n)多种形式,分别是一阶、线性、平方、对数、指数。

算法的复杂度有时候不是定值,比如排序算法,根据输入数据的不同,原操作执行的次数就不一样。一般我们按照最坏的情况来计算算法复杂度。

空间复杂度 S(n) = O( F(n) )

相关文章

【啊哈!算法】算法3:最常用的排序——快速排序       ...
匿名组 这里可能用到几个不同的分组构造。通过括号内围绕的正...
选择排序:从数组的起始位置处开始,把第一个元素与数组中其...
public struct Pqitem { public int priority; ...
在编写正则表达式的时候,经常会向要向正则表达式添加数量型...
来自:http://blog.csdn.net/morewindows/article/details/6...