一.认识数据结构
数据结构和数据对象:
数据结构:相互之间存在一种或多种关系的元素的集合
数据对象:具有相同性质元素的集合
逻辑结构:
1.线性结构:
”前驱后继“的关系
2.树形结构
3.图结构
物理结构(存储结构):
顺序 链式 索引 散列
顺序存储:
链式存储:
指针
索引存储:
散列存储(哈希)
数据结构的三要素:
逻辑、物理、数据的运算
考虑问题时:
程序=数据结构+算法
时间复杂度:
只保留阶数更高的那一项
运算法则:
“ 常对幂指阶”
练习:
1.某算法的时间复杂度为O(n2),表明该算法的( C )
A.问题规模是n2 B.执行时间等于n2
C.执行时间与n2成正比 D.问题规模与n2成正比
此题选C,时间复杂度为O(n2),说明算法的执行时间T(n)<=c * n2(c为比例常数),即T(n)=O(n2),时间复杂度T(n)是问题规模n的函数,其问题规模仍然是n而不是n2。
2.
3.
空间复杂度:
递归调用的深度
复杂度:抓大放小
冒泡排序复杂度:O(n)
二分查找:
递归算法:
斐波那契:
空间复杂度: