排序算法总结

算法 是否稳定 是否为原地排序 时间复杂度 空间复杂度
冒泡排序 N*N 1
选择排序 N*N 1
插入排序 N*N 1
归并排序 N*logN N
快速排序 N*logN logN
堆排序 N*logN 1
希尔排序 N*logN 1
基数排序 N M:桶的数量
计数排序 N M:桶的数量

冒泡排序

image

选择排序

image

运行时间与输入无关
数据移动最少

插入排序

image

对于部分有序数组十分高效,适合小规模数组

归并排序

image

merge时,判断是否有序,若有序则无需merge操作

快速排序

image

case:
数组中出现超过一半的数字;
最小的k个数;

堆排序

image

希尔排序

image

基数排序

image

计数排序

image

你可能感兴趣的:(排序算法总结)