愛伊米

常用的排序演算法程式碼

一、氣泡排序

氣泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序演算法。

它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

以下程式碼可以直接執行:

二、快速排序

快速排序(Quicksort)是對氣泡排序的一種改進。

快速排序的思想是:透過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。

以下程式碼可以直接執行:

三、桶排序

桶排序(Bucket sort)

或所謂的箱排序,是一個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序(有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序)。桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間(Θ(n))。但桶排序並不是 比較排序,他不受到 O(n log n) 下限的影響。

以下程式碼可以直接執行:

四、合(歸)並排序

歸併排序(MERGE-SORT)是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱為二路歸併。

五、二分查詢

專業解惑:你的電感為什麼在嘯叫

深度剖析C語言的main函式

程式設計5分鐘,命名2小時!探討一下C語言變數/函式的命名規則!