算法
1.定义
是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或者多个操作。
2.特性
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
3.设计要求
- 正确性
- 可读性
- 健壮性
- 高效率
- 低存储
4.度量方法
- 事后统计方法
- 事前统计方法
函数渐进增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n > N,f(n)总是比g(n)大,那么,我们就说f(n)的增长渐进快于g(n)。
5.时间复杂度
衡量标准:大O阶
-
推导步骤:
- 用常数1取代运行时间中的素有加法常数。
- 在修改后的运行次数函数中,只保留最高阶。
- 如果最高阶存在且不是1,则去除这个项相乘的常数。
5.1.时间复杂度消耗时间的大小排列
O(1) < O(logN) < O(n) < O(nlogN) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
6.空间复杂度
算法所占空间的一个衡量标准。
由于硬件性能越来越好,通常算法都是用空间换时间的方式。