1. 程式人生 > >數據結構_1 排序

數據結構_1 排序

從後往前 歸並 數據 直接選擇排序 結果 時間復雜度 遍歷 直接插入排序 right

排序分為四種(交換、選擇、插入、合並):

  1. 交換排序: 包括冒泡排序,快速排序。
  2. 選擇排序: 包括直接選擇排序,堆排序。
  3. 插入排序: 包括直接插入排序,希爾排序。
  4. 合並排序: 合並排序。

冒泡排序:

  從後往前依次比較,逐個交換,效率較低,時間復雜度為: 0(n) - 0(n^2) 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)

數據結構_1 排序