排序算法
排序是将一组数据,依指定的顺序进行排列的过程
📌分类
-
内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序
-
外部排序: 数据量过大,无法全部加载到内存中,需要借助外部存储(文件)进行排序
-
常见的排序算法分类
度量算法执行时间的 两种方法
-
事后统计方法
-
事前估算方法
算法时间复杂度
-
算法的时间度量
-
计算方法:
-
用常数1代替运行时间中的所有加法常数
-
修改后的运行次数函数中,只保留最高阶项
-
去除最高阶项的系数
-
-
常见的时间复杂度(从小到大)
-
常数阶O(1)
-
对数阶O(log₂n)
-
线性阶O(n)
-
线性对数阶O(nlog₂n)
-
平方阶O(n²)
-
立方阶O(n³)
-
i次方阶O(nⁱ)
-
指数阶O(2ⁿ)
-
平均时间复杂度: 所有可能的输入实例均以等概率出现的情况下,该算法的运行时间
最坏时间复杂度: 最坏情况下的时间复杂度,一般讨论的都是最坏时间复杂度
#注意#: 平均复杂度和最坏时间复杂度是否一致,和算法有关
空间复杂度
-
该算法耗费的存储空间,也是问题规模n的函数
-
一个算法在运行过程中临时占用存储空间大小的度量
-
算法分析时,主要讨论的是时间复杂度,一些缓存产品和算法的本质就是用空间换时间
时间频度
- 一个算法中语句执行的次数,记为T(n)