算法 | 算法描述 | 时间复杂度 | 稳定排序 | 最坏时间复杂度
|
插入 | 每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 | n^2 | 稳定
| |
冒泡 | 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 | n^2 | 稳定 | |
选择 | 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 | n^2 | 不稳定 | |
归并 | 采用归并的思想 ,递归地分割当前序列,使子序列有序,然后对子序列进行合并,使合并后的序列也有序。 | nLog(n) | 稳定 | nLog(n) |
快排 | 选定一个中间元素通将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 | nLog(n) | 不稳定 | n^2 |