前言
- 本部分最主要的内容是时间和空间复杂度。
- 时间复杂度之前还多少知道,空间复杂度用得比较少,以至于刷题时,人家说空间复杂度是O(1)时自己都没点数。
内容
- 算法的定义,对特定问题求解步骤的一种描述。
-
算法的特性
- 有穷性
- 确定性
- 可行性
- 有输入
- 有输出
-
算法的目标
- 正确性
- 可使用性
- 可读性
- 健壮性
- 高效率和低存储量需求
-
算法时间复杂度
-
分析时间复杂度的步骤
- 根据形参n确定问题规模
- 算法中循环中最深层的诗句为基本语句,基本语句是不是与形参n有关系。
- 用O进行标记,只保留最高阶项。
-
不同时间复杂度的排序和比较
- O(1) 常数阶 < O(logn) 对数阶 < O(n) 线性阶 < O(nlogn) < O(n^2) 平方阶 < O(n^3) < { O(2^n) < O(n!) < O(n^n) }
-
-
空间复杂度
- 函数体内新开辟的空间。
- 如果临时变量与形参n确定问题规模无关,那么就是O(1)。
习题
李的习题
- 比较有代表性的是递归求规模,这个部分不太会呢l,或者没有更多深入ionel
- 33,有以下递归算法:
void mergesort(int i,int j)
{
int m;
if(i!=j)
{
m=(i+j)/2;
mergesort(i,m);
mergesort(m+1,j);
merge(i,,j,m);
}
}
,分析mergesort(0,n-1)的时间复杂度
履历
第一版
- 20181227左右看的内容,20181201整理的,也是48周的计划内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。