数据结构-八大排序算法的时间复杂度 稳定性

如题所述

第1个回答  2022-07-07

1:直接插入排序:
最好:待排序已经有序, 从前往后走都不用往里面 插入。 时间复杂度为o(n)
最坏:待排序列是逆序,每一次都要移位插入。 时间复杂度o(n^2)
是稳定排序

2:希尔排序:
最好:缩小增量的插入排序,待排序已经有序。时间复杂度o(n)
一般:平均时间复杂度o(n 1.3),最差也是时间复杂度o(n 1.3)
不稳定排序

3:冒泡排序:
最好:待排序已经有序。时间复杂度o(n)
最坏:待排序是逆序。时间复杂度o(n^2)
稳定排序

4:快速排序:
最好:待排序无序。时间复杂度o(nlogn)
最坏: 待排序已经有序,基准定义在开始。 时间复杂度为o(n^2)
不稳定排序

5:直接选择排序:
无论好坏:o(n^2)
稳定排序

6:堆排序:
无论好坏:时间复杂度o(nlogn)
不稳定排序

7:归并排序:

稳定排序

8:基数排序:
无论好坏:o(d(n+r)) ,r为基数,d为位数.
稳定排序