冒泡排序
即找最值,把最大的挪到后面或者把最小的挪到前面
最佳时间复杂度:O(n)每一个数一对比就对了
平均时间复杂度:O(n^2)每一个数都要和其余数对比
最差时间复杂度:O(n^2)
插入排序
从未排序部分取出一个数,放到已排序部分的正确位置.
最佳时间复杂度:O(n)每一个数一对比就对了
平均时间复杂度:O(n^2)每一个数都要和其余数对比
最差时间复杂度:O(n^2)
选择排序
找到最小或最大的数,放到开头或结尾.
最佳时间复杂度:O(n^2)每一个数都要和其余数对比
平均时间复杂度:O(n^2)
最差时间复杂度:O(n^2)
快速排序
随便找一个数,将比它小的挪到左边,大的挪到右边,然后对两边递归使用快速排序直到没有可以排的为止.
最佳时间复杂度:O(n logn)每一个数调用递归且规模显著减小
平均时间复杂度:O(n logn)
最差时间复杂度:O(n^2)
合并排序
分解:将现有元素递归一分为二直到为单个元素(默认有序)
合并:递归合并所有元素
时间复杂度:O(n logn)每一个数调用递归且规模显著减小