02算法与算法分析
前言
- 本部分最主要的内容是时间和空间复杂度。
- 时间复杂度之前还多少知道,空间复杂度用得比较少,以至于刷题时,人家说空间复杂度是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周的计划内容。
参考
相关推荐
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
bluewelkin 2020-09-16
chensen 2020-11-14
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
wwzaqw 2020-09-04
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03