• 排序总结


        备注 最好时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 稳定性
    插入排序 直接插入排序 将一个元素插入到另一有序的序列中 有序,只需要比较,O(n) O(n2) O(n2) O(1)
    折半插入排序 有序的,顺序存储,比较的次数可以减少,但是插入的次数没有减少  一个元素折半查找是 O(log2n),所以比较时间复杂度是O(nlog2n);最终是O(n2)    
    希尔排序  缩小增量排序;刚开始是组内元素少,后来全局有序的情况下直接插入排序效率比较高;只适合顺序存储        O(1)  否
    交换排序 冒泡排序  每趟确定一个元素,如果该趟没有交换元素,结束  有序,只进行比较,O(n)  O(n2)  O(n2)  O(1)  是
    快速排序

     pivot,每趟确定一个元素到最终位置

    优化:1)pivot的选择头中尾,取这三个元素的平均值

        2)规模较小时候,不再使用递归,而是用直接插入排序

       O(nlog2n)  有序或者逆序,O(n2)  需要一个栈,平均是O(log2N)  否
    选择排序 简单选择排序  每次选择最小的那个   O(n2)   O(n2)   O(n2)   O(1)  否
    堆排序  构造初始堆    O(nlog2n)     O(1)   否
      归并排序  两两归并    O(nlog2n)  

    两个有序表合成一个有序表。 

    O(n),合并的过程中用了辅助数组

     
  • 相关阅读:
    Markdown 画 UML 图(六)
    Markdown 高级技巧(五)
    Markdown 链接、图片、表格(四)
    16.3Sum Closet
    15.Three Sum
    11.Container With Most Water
    1.Two Sum
    优化学习笔记5
    优化学习笔记4
    优化学习笔记3
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12787910.html
Copyright © 2020-2023  润新知