【排序算法】八大排序算法总结

排序分为内部排序和外部排序,常用的为以下八大内部排序(使用内存)。


稳定性定义:在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即如果相同的记录 ri ,rj 经过排序后ri 仍在rj之前,则被认为是稳定的。 



如上图所示, 
稳定性来看,
希尔、快速、直接选择、堆,这四种排序是不稳定的。
时间复杂度来看,
快速、堆、归并三种排序的时间复杂度较好,均为O(nlogn),虽然快排最坏会达O(nlogn),在实际应用中常常优于其它算法。
选择、直接插入和冒泡的平均时间复杂度均为0(n^2),但在最好情况下直接插入和冒泡的时间复杂度可达O(n),简单选择排序与序列的初始状态无关。
空间复杂度来看,
快速排序需要用到栈,平均情况下为O(logn),最坏情况下为O(n),其余算法均为O(1)。
过程特征看,
冒泡排序,简单选择排序和堆排序在每次遍历后都能确定当前的最大值与最小值,快速排序一次遍历确定一个元素的最终位置。


注:
各排序算法的算法介绍,具体实现及优化请参看本系列其他博文,如果有不对的地方,请多多指教~O(∩_∩)O~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值