• 数据结构-排序法


    排序好处:

    • 数据较容易阅读
    • 数据较利于统计及整理
    • 可大幅度减少数据搜索时间

    按执行时内存分类

    • 内部排序:排序的数据量小,完全可以在内存内进行排序
      • 冒泡排序法、选择排序法、插入排序法、合并排序法、快速排序法、堆积排序法、希尔排序法、基数排序法
    • 外部排序:排序的数据量无法直接在内存内进行排序,而必须使用辅助存储器(硬盘)
      • 直接合并排序法、K 路合并法、多相合并法

    排序算法分析

    • 算法是否稳定
      • 稳定排序是指数据在经过排序后,两个相同键值的记录仍然保持原来的顺序
      • 原始数据:7(左)、2、9、7(右)、6
      • 稳定排序:2、6、7(左)、7(右)、9
      • 不稳定排序:2、6、7(右)、7(左)、9
    • 时间复杂度(省略系数、低阶、常量)
      • 最好情况(Best Case):数据已完成排序
      • 最坏情况(Worst Case):每一键值都需重新排列
      • 平均情况(Average Case):所有情况次数/所有情况数量
    • 空间复杂度
      • 算法在执行过程中所需付出的额外内存空间,仅用到一个额外的空间,空间复杂度最好
     
    内部排序法
      排序名称 排序特性
    简单排序法 冒泡排序法(Bubble Sort)
    • 稳定排序空间
    • 复杂度为最佳,只需一个额外空间 O(1) 
    选择排序法(Selection Sort)
    • 不稳定排序
    • 空间复杂度为最佳,只需一个额外空间 O(1) 
    插入排序法(Insertion Sort)
    • 稳定排序
    • 空间复杂度为最佳,只需一个额外空间 O(1) 
    希尔排序法(Shell Sort)
    • 不稳定排序
    • 空间复杂度为最佳,只需一个额外空间 O(1) 
    高级排序法 快速排序法(Quick Sort)
    • 不稳定排序
    • 空间复杂度最差为 O(n),最佳为 O(log2n)
    堆积排序法(Heap Sort)
    • 不稳定排序
    • 空间复杂度为最佳,只需一个额外空间 O(1) 
    基数排序法(Radix Sort)
    • 稳定排序
    • 空间复杂度为 O(np),n 为原始数据的个数,p 为基底 
  • 相关阅读:
    jmap使用
    Spring boot后台搭建一使用MyBatis集成Mapper和PageHelper
    aspose.slides for java去除水印
    win10 解决Failed installing 'Tomcat8' service
    NoSQL数据库
    windows下Java调用可执行文件
    Neo4j CQL基本使用
    初识Neo4j
    (原)下载pubFig的python代码
    (原+译)win7远程连接ubuntu16.04
  • 原文地址:https://www.cnblogs.com/qpliang/p/12674643.html
Copyright © 2020-2023  润新知