排序演算法對比,步驟,改進

來源:互聯網
上載者:User

標籤:基數排序   讀取   ges   第一個   二分插入排序   info   位置   數組   數列   

圖片鎮樓

插入排序(InsertSort)

步驟:

      1.依次選擇一個待排序的記錄,

      2.依次與已經排好序的有序序列比較,並插入

      3.持續每次對越來越少的元素重複上面的步驟,直到插完所有元素為。

 

改進:

  二分插入排序,直接和有序序列的中間比較。

  希爾排序。

 

希爾排序(又叫縮小增量排序,ShellSort)

步驟:

       1.先將整個待排元素序列分割成若干個子序列

       2.分別進行插入排序

   3.然後依次縮減增量再進行插入排序

       4.待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次插入排序

 

冒泡排序(BubbleSort)

步驟:

      1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

      2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

      3.針對所有的元素重複以上的步驟,除了最後一個。

      4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

改進:

  快速排序。

 

快速排序(QuickSort)

步驟:

       1.從數列中挑出一個元素,稱為 "基準",重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。

       2.遞迴地把小於基準值元素的子數列和大於基準值元素的子數列排序。

       3.遞迴的最底部情形,是數列的大小是零或一,也就是永遠都已經被排序好了。

 

選擇排序(SelectSort)

步驟:

      1.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

      2.從剩餘未排序元素中繼續尋找最小(大)元素

      3.放到已排序序列的末尾

      4.以此類推,直到所有元素均排序完畢。

改進:

       傳統的簡單選擇排序,每趟迴圈只能確定一個元素排序後的定位。我們可以考慮改進為每趟迴圈確定兩個元素(當前趟最大和最小記錄)的位置,從而減少排序所需的迴圈次數。改進後對n個資料進行排序,最多隻需進行[n/2]趟迴圈即可。

  堆排序。

 

堆排序(HeapSort)

步驟:

      1.將無需序列構建成一個堆,根據升序降序需求選擇大頂堆或小頂堆;

      2.將堆頂元素與末尾元素交換,將最大元素"沉"到數組末端;

      3.重新調整結構,使其滿足堆定義,然後繼續交換堆頂元素與當前末尾元素,反覆執行調整+交換步驟,直到整個序列有序

 

歸併排序(MergeSort)

步驟:

        1. 把長度為n的輸入序列分成兩個長度為n/2的子序列。

        2. 對這兩個子序列分別採用歸併排序。

        3. 將兩個排序好的子序列遞迴合并成一個最終的排序序列。

 

桶排序(Bucket Sort)

步驟:

        1. 建立等容量的桶數組,並將桶數組元素都初始化為0

        2. 逐個遍曆數組,將數組的值,作為桶數組的下標。資料被讀取時,就將桶的值加1。

        3. 將桶數組不為0的的值的key取出,數量為該key的值

改進:

       基數排序。計數排序

 

基數排序(Radix Sort)

步驟:

        1. 將所有待比較數值統一為同樣的數位長度,數位較短的數前面補零。

        2. 從最低位開始,依次進行一次排序。

 

計數排序(count sort)

步驟:

  1. 找出序列中最大值和最小值,開闢Max-Min+1的輔助空間
  2. 最小的數對應下標為0的位置,遇到一個數就給對應下標處的值+1,。
  3. 遍曆一遍輔助空間,就可以得到有序的一組序列

排序演算法對比,步驟,改進

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.