Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说十大排序算法总结「终于解决」,希望能够帮助你!!!。
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
十种常见排序算法可以分为两大类,如下图所示。
常见排序算法简介如下表所示。
| 排序方法 | 最好时间复杂度 | 最坏时间复杂度 | 平均时间复杂度 | 辅助空间复杂度 | 稳定性 | 博客链接 |
|---|---|---|---|---|---|---|
| 冒泡排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n^{2}) O(n2) | O ( n 2 ) O(n^{2}) O(n2) | O ( 1 ) O(1) O(1) | 稳定 | 冒泡排序算法 |
| 选择排序 | O ( n 2 ) O(n^{2}) O(n2) | O ( n 2 ) O(n^{2}) O(n2) | O ( n 2 ) O(n^{2}) O(n2) | O ( 1 ) O(1) O(1) | 不稳定 | 选择排序算法 |
| 插入排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n^{2}) O(n2) | O ( n 2 ) O(n^{2}) O(n2) | O ( 1 ) O(1) O(1) | 稳定 | 插入排序算法 |
| 折半插入排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n^{2}) O(n2) | O ( n 2 ) O(n^{2}) O(n2) | O ( 1 ) O(1) O(1) | 稳定 | 折半插入排序算法 |
| 希尔排序 | – | – | – | O ( 1 ) O(1) O(1) | 不稳定 | 希尔排序算法 |
| 快速排序 | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n 2 ) O(n^{2}) O(n2) | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n ) O(n) O(n) | 不稳定 | 快速排序算法 |
| 归并排序 | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n ) O(n) O(n) | 稳定 | 归并排序算法 |
| 堆排序 | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n l o g n ) O(nlogn) O(nlogn) | O ( n l o g n ) O(nlogn) O(nlogn) | O ( 1 ) O(1) O(1) | 不稳定 | 堆排序算法 |
| 计数排序 | O ( n + k ) O(n+k) O(n+k) | O ( n + k ) O(n+k) O(n+k) | O ( n + k ) O(n+k) O(n+k) | O ( k ) O(k) O(k) | 稳定 | 计数排序算法 |
| 桶排序 | O ( n + k ) O(n+k) O(n+k) | O ( n + k ) O(n+k) O(n+k) | O ( n 2 ) O(n^{2}) O(n2) | O ( n + k ) O(n+k) O(n+k) | 稳定 | 桶排序算法 |
| 基数排序 | O ( n × k ) O(n \times k) O(n×k) | O ( n × k ) O(n \times k) O(n×k) | O ( n × k ) O(n \times k) O(n×k) | O ( n + k ) O(n+k) O(n+k) | 稳定 | 基数排序算法 |
结论: 1. 当初始序列基本有序时,直接插入排序最快,快速排序慢(在初始序列较为混乱时快);
2. 归并排序对初始序列排序不敏感,速度稳定;
3. 记录个数较少,采用插入排序或选择排序,记录本身信息量大,采用简单选择排序;
4. 记录较大,采用快速排序、堆排序、归并排序。
各种排序算法的主要思想总结:
i =Left; j = Right; 将 a[i] 挖出形成第一个坑,称 a[i] 为基准数。然后 j-- 由后向前找比基准数小的数,找到后挖出此数填入前一个坑 a[i] 中,再 i++ 由前向后找比基准数大的数,找到后挖出此数填到前一个坑 a[j] 中,重复进行这种“挖坑填数”直到 i==j。再将基准数填入 a[i] 中,这样 i 之前的数都比基准数小,i 之后的数都比基准数大,因此将数组分成两部分再分别重复上述步骤就完成了排序。上一篇
已是最后文章
下一篇
已是最新文章