排序算法
1. 排序算法的介绍
排序也称为排序算法,排序是将一组数据,依指定的顺序进行排序的过程。
2. 分类
- 内部排序:
指将需要处理的所有数据都加载到内部存储器中进行排序。
- 外部排序:
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。
- 常见的排序
3. 时间复杂度
3.1 时间复杂度
一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)
表示,若有某个辅助函数f(n)
,使得当n
趋近于无穷大时,T(n)/f(n)
的极限值为一不为0的常熟,则称f(n)
为T(n)
的同数量级函数。记作T(n)=O(f(n))
,称O(f(n))
为算法的渐进时间复杂度,简称时间复杂度。
3.2 时间复杂度计算方法
- 用常数1代替运行时间中的加法常数
- 修改后的运算次数函数中,只保留最高阶项
- 去除最高阶项的系数
3.3 常见的时间复杂度
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(nk)<O(2n)
3.4 时间复杂度分析
常数阶O(1)
无论代码执行多少行,只要没有循环等复杂结构,那这个代码的时间复杂度就是O(1)
对数阶O(logn)
在while
循环里,每次都将i
乘以2,每一次循环都离n
越来越近,所以循环次数应该是logn
线性对数阶O(nlogn)