数据结构基础
计算机中有哪两种基本的存储结构:
- 顺序存储结构
- 链式存储结构
数据的基本单位是数据元素
数据项是数据的最小单位
可以用抽象数据类型定义一个完整的数据结构
算法特性
- 算法必须在执行有穷步后结束
- 算法有一个或多个输出
- 算法的每个操作不会产生二义性
评价算法的高效性,主要从哪些方面衡量
- 时间复杂度
- 空间复杂度
算法的时间复杂度取决于
- 问题规模
- 算法选用的策略
数据在计算机存储器内表示时,物理地址与逻辑地址不相同:链式存储结构
抽象数据类型三个组成部分分别为
- 数据对象
- 数据关系
- 基本操作
对一个算法的评价,不包括并行性方面的内容 包括
- 健壮性和可读性
- 正确性
- 时空复杂度
链式存储结构中数据元素之间的逻辑关系是由指针表示的
下面程序段的时间复杂度是O(n 1/2)
x=n;//n>1
y=0;
while(x>=(y+1)*(y+1))
y++;
数据的逻辑结构独立于其存储结构
在存储数据时,通常不仅要存储各数据元素的值,而且要存储数据元素之间的关系
链式存储设计时,结点内的存储单元地址一定连续
算法是对问题求解步骤的描述
在数据结构中,与所使用的计算机无关的是数据的逻辑结构
数据结构是带有结构的各数据元素的集合
下面程序段的时间复杂度是O(n)
act(int n) {
if(n<=1)
return 1;
else
return(n*fact(n-1));
}
通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
- 高效性是指算法运行效率高,即算法运行所消耗的时间短
- 易读性指算法应易于阅读和理解,以便调试、修改和扩充
- 正确性算法应能正确地实现预定的功能
- 健壮性指当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果