7.10学习资料

一、时空复杂度

1.用O表示

注意事项:i.保留最高次项,去掉其他内容

例O(3n^3+n+7)要写成O(n^3)

O(11n^4+5n+14)要写成O(n^4)

ii.去掉对数的底数

例O(n^2log2(n))要写成O(n^2log(n))

2.比较

O(1)<O(log(n))<O(根号n)<O(n)<O(n log(n))<O(n^1.5[n根号n])<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)

二、主定理

T(n)=aT(n/b)+f(n)

f(n)>n^log_b(a),T(n)=O(n^log_b(a))

f(n)<n^log_b(a),T(n)=O(f(n))

f(n)=n^log_b(a),T(n)=O(n^log_b(a)log(n))

三、递归与搜索

搜索:dfs、bfs

优化dfs:固定层数

四、容器

数组:静态:array<int,10005>(C++11)

动态:vector

常用:set、map、priority_queue

少用:stack、deque

4 个赞