1.判断排序好坏:时间效率、空间效率、稳定性。
2.插入排序
1️⃣直接插入排序 将一个记录插入到已排序好的有序表中;
2️⃣希尔排序 将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序;
3️⃣冒泡排序;
4️⃣快速排序 通过一趟排序将待排序记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序;
3.选择排序
1️⃣简单选择排序
2️⃣树形选择排序
3️⃣堆排序
4.归并排序(归并的含义是将两个或两个以上的有序表组合成一个新的有序表)
1️⃣二路归并排序(将一位数组中前后相邻的两个有序序列归并为一个有序序列)
5.各种内部排序方法比较
排序方法 | 平均时间 | 最坏情况 | 辅助存储 |
简单排序 | O(n^2) | O(n^2) | O(1) |
快速排序 | O(nlogn) | O(n^2) | O(logn) |
堆排序 | O(nlogn) | O(nlogn) | O(1) |
归并排序 | O(nlogn) | O(nlogn) | O(n) |
基数排序 | O(d(n+rd)) | O(d(n+rd)) | O(rd) |