美文网首页
排序算法总结

排序算法总结

作者: One_Hund | 来源:发表于2018-09-18 00:20 被阅读0次
    一、内排序算法分为:插入排序、交换排序、选择排序和归并排序四类
    • 希尔排序相当于直接插入排序的升级,它们同属于插入排序类;
    • 堆排序相当于简单选择排序的升级,它们同属于选择排序类;
    • 快速排序相当于冒泡排序的升级,它们同属于交换排序类。
    二、7种算法的性能指标:
    三、性能分析

    从算法的简单性来看,我们将7种算法分为两类:

    • 简单算法:冒泡、简单选择、直接插入
    • 改进算法:希尔、堆、归并、快速

    • 时间复杂度看:
    • 平均情况来看,改进算法中,堆、归并、快速排序要胜过希尔排序,并远远胜过冒泡、简单选择、直接插入这3种简单算法
    • 最好情况看,反而冒泡和直接插入排序要更胜一筹,也就是说,如果你的待排序序列总是基本有序,反而不应该考虑复杂的改进算法
    • 最坏情况看,堆排序与归并排序又强过快速排序以及其他简单排序。
    • 从这三组时间复杂度的数据对比中,我们可以得出这样一个认识:堆排序和归并排序就像两个参加奥数考试的优等生,心理素质强,发挥稳定。而快速排序像是很情绪化的天才,心情好时表现极佳,碰到较糟糕环境会变得差强人意。但是他们如果都来比赛计算个位数的加减法,它们反而算不过成绩极普通的冒泡和直接插入。

    • 空间复杂度看,堆排序是好的选择

    • 稳定性来看,归并排序是好的选择

    总之,从综合各项指标来说,经过优化的快速排序是性能最好的排序算法,但是不同的场合我们也应该考虑使用不同的算法来应对它。

    参考文献:《大话数据结构》—— 程杰著

    相关文章

      网友评论

          本文标题:排序算法总结

          本文链接:https://www.haomeiwen.com/subject/vdwjnftx.html