算法 | 空间复杂度 | 时间复杂度(平均/最坏) | 稳定性 |
---|---|---|---|
冒泡排序 | O(1) | O(n2)/O(n2) | 稳定 |
选择排序 | O(1) | O(n2)/O(n2) | 不稳定 |
插入排序 | O(1) | O(n2)/O(n2) | 稳定 |
希尔排序 | O(1) | O(nlogn)/O(ns) (s为步长) | 不稳定 |
快速排序 | O(logn) | O(n*logn)/O(n2) | 不稳定 |
归并排序 | O(n) | O(nlogn)/O(nlogn) | 稳定 |
堆排序 | O(1) | O(nlogn)/O(nlogn) | 不稳定 |
时间复杂度:是同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。
计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输