十大排序算法

稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;

不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;

内排序:所有排序操作都在内存中完成;

外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;

时间复杂度: 一个算法执行所耗费的时间。

空间复杂度:运行完一个程序所需内存的大小。

1、冒泡排序

时间复杂度最好:n

时间复杂度最坏:n^2

时间复杂度平均:n^2

空间复杂度:1

稳定性:稳定

原理:相邻元素比较排序,最值冒出

适用:小规模,有序

2、选择

时间复杂度最好:n^2

时间复杂度最坏:n^2

时间复杂度平均:n^2

空间复杂度:1

稳定性:不稳定

原理:无序区选择最小元素放在有序区末尾

适用:小规模,有序

3、插入排序

时间复杂度最好:n

时间复杂度最坏:n^2

时间复杂度平均:n^2

空间复杂度:1

稳定性:稳定

原理:无序区第一个元素插入到有序区正确位置

适用:小规模,有序

4、希尔排序

时间复杂度最好:nlogn

时间复杂度最坏:nlogn

时间复杂度平均:nlogn

空间复杂度:1

稳定性:不稳定

原理:不断缩小增量的插入排序

适用:

5、归并排序

时间复杂度最好:nlogn

时间复杂度最坏:nlogn

时间复杂度平均:nlogn

空间复杂度:n

稳定性:稳定

原理:二分,比较排序

适用:大规模

6、快速排序

时间复杂度最好:nlogn

时间复杂度最坏:n^2

时间复杂度平均:nlogn

空间复杂度:1

稳定性:不稳定

原理:选基准,小于基准放左边,大于基准放右边,递归

适用:大规模

7、堆排序

时间复杂度最好:

时间复杂度最坏:

时间复杂度平均:

空间复杂度:

稳定性:

原理:

适用:

原文地址:https://www.cnblogs.com/pacino12134/p/11325701.html