排序可以分为以下几个大类:
(1)插入排序:直接插入排序、折半插入排序和希尔排序
(2)交换排序:快速排序和冒泡排序
(3)选择排序:简单选择排序和堆排序
(4)外部排序:归并排序和基数排序

针对内部排序的效率总结:
(1)时间复杂度为 O(nlogn) 的有:希尔排序、快速排序和堆排序
(2)空间复杂度不为 O(1) 的有:快速排序,采用递归需要用到栈,所以 O(logn) ~ O(n)
(3)对于稳定性来说,只有三种排序是稳定的:插入排序的前两种和冒泡排序
(4)对于全局有序来说:选择排序和交换排序

对于数据初始状态总结:
(1)对于少量数据的排序 —— 直接插入和选择排序
(2)数据基本有序的情况 —— 直接插入、折半插入和冒泡排序(正序)
(3)中等规模的数据,最差和平均差不多 —— 希尔排序
(4)适用于数据规模较大的 —— 堆排序、归并排序、基数排序、快速排序
(5)数据规模较大,数据分布随机 —— 快速排序

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐