1.数据结构引入
数据结构:相互之间存在一种或者多种特定关系元素的数据元素的集合
数据:描述客观事物的符号,能被计算机识别,并输入给计算机处理的符号集合。
数据元素:组成数据、有一定基本意义的单位
人类: 人
家禽类:鸡鸭鹅
数据对象:性质相同的数据元素的集合,是数据的子集。
逻辑结构:数据对象中数据元素之间的相互关系
A.集合结构
B.线性结构
c. 树形结构
D.图形结构
物理结构:数据的逻辑结构在计算机中的存储形式
A. 顺序存储
B. 链式存储 (如银行叫号)
2.算法引入
数据结构与算法的关系
算法:解决特定问题求解步骤的描述,在计算集中表现为指令的有限序列,并且每个指令表示一个或多个操作
5个特性:输入(0个或多个)、输出(一个或多个)、有穷性、确定性和可行性
算法设计要求:
正确性、可读性、健壮性
实践效率高和存储量低
算法效率的度量方法:事后统计法、事前分析估算法
3. 算法时间空间复杂度
时间复杂度
O(1) O(N)
O 描述的是算法的运行时间和输入数据之间的关系
O 实质是渐进时间复杂度,描述的是当n趋近于无穷的情况
举例:
#常数阶 O(1)
sum, n =0,100 #执行一次
sum = (1+n)*n/2 #执行一次
print(sum) #执行一次
#线性阶 O(n)
for i in range(n): #时间复杂度为O(1)的程序步骤序列 ,循环时间复杂度为O(n)
#对数阶
count =1
while count<n:
countcount*2
若n=64
2 4 8 16 32 64
2**x = n
x= log2(n)
O(logn)
参考:深度之眼课程