zoukankan      html  css  js  c++  java
  • 数据结构_1 排序

    排序分为四种(交换、选择、插入、合并): 

    1.       交换排序: 包括冒泡排序,快速排序。
    2.       选择排序: 包括直接选择排序,堆排序。
    3.       插入排序: 包括直接插入排序,希尔排序。
    4.       合并排序: 合并排序。

    冒泡排序:

      从前往后依次比较,逐个交换,效率较低,时间复杂度为: 0(n) - 0(n^2) 

    快速排序:

      通过第一遍的遍历(让left和right指针重合)来找到数组的切割点,平均时间复杂度: N(logN),最坏时间复杂度:  0(n^2)

    直接选择排序: 

      找出基准后最小数进行交换,直接选择排序的时间复杂度为:O(n^2)

    堆排序:

      构建并输出大根堆,堆排序的时间复杂度:O(NlogN)

    直接插入排序:

      以基准从前往后依次比较插入,时间复杂度为:O(N^2)

    希尔排序:

      缩小增量排序法,d=count/2k,平均为:O(N^3/2),最坏: O(N^2)

    归并排序:

    1. “分”,  就是将数组尽可能的分,一直分到原子级别。
    2. “并”,将原子级别的数两两合并排序,最后产生结果。
    3. 时间复杂度为: O(NlogN),空间复杂度为:  O(N) 
  • 相关阅读:
    几个关于集合的有趣证明
    SICP 作业2.5
    有关集合大小的比较
    2020 ICPC 小米邀请赛 部分题解
    Hello World!
    【图论】BellmanFord算法
    【图论】格子图
    【图论】BFS
    【图论】二分图最大匹配 | 二分图最大独立集 | 二分图最小点覆盖
    【图论】最大权不相交区间
  • 原文地址:https://www.cnblogs.com/bingxin/p/7271078.html
Copyright © 2011-2022 走看看