数据结构:计算机存储,组织数据方式。数据之间存在多种特定关系。
时间复杂度:程序基本操作(循环等)执行的次数
大O渐进法表示法
用最高阶的项来表示,且常数变为1。
F(n)=3*n^2+2n+1//F(n)为次数函数,时间复杂度O(n^2)
O(n^2)表示最大量级是n^2,不代表函数循环的次数是n^2。
循环次数确定时,时间复杂度记为O(1)
不确定情况
O(M+N)
M远大于N,O(M)N远大于M,O(N)M,N相等,O(M)或O(N)
当算法复杂度存在最好,最坏,平均情况时(最好:最小次数,最坏:最大次数,平均:期望运行次数),选择最坏作为时间复杂度。
二分查找:O(logN)
最好:O(1),最坏:O(logN)
第一次:n
第二次:n/2
...
第k次:1
1*2^k=n
k=log2(n)//一2为底n的对数
斐波那契数列:O(2^n)
尽管会有提前结束,但忽略不计。