一.关于排序的概念:
排序的概念:
排序就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作;
排序的分类:排序分为内部排序和外部排序;
内部排序:数组元素全部放在内存中的排序;
外部排序:数据元素太多,不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序;
二.关于排序的常见算法分类:
算法之间的时间复杂度,空间复杂度,以及稳定性的比较:
排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|
直接插入排序 | 最好是O(n),最坏是O(n^2) | 空间复杂度为O(1) | 稳定 |
希尔排序 | 最好是O(n),最坏是O(n^2) | 空间复杂度为O(1) | 不稳定 |
选择排序 | 最好是O(n^2),最坏是O(n ^2) | 空间复杂度为O(1) | 不稳定 |
堆排序 | 最好是O(n* logN),最坏是O(n* logN) | 空间复杂度为O(1) | 不稳定 |
冒泡排序 | 最好是O(n),最坏是O(n^2) | 空间复杂度为O(1) | 稳定 |
快速排序 | 最好是O(n*logN),最坏是O(N^2) | 空间复杂度为O(logN) | 不稳定 |
归并排序 | 最好是O(n* logN),最坏是O(n* logN) | 空间复杂度为O(n) | 稳定 |