幾種常用的排序方法

2021-08-03 22:40:41 字數 1133 閱讀 9100

幾種常用的排序方法

1.氣泡排序

氣泡排序演算法的運作如下:(比如按從小到大排列)

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

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

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

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

eg:如果sz個數我們只需要比較(sz-1)輪,每輪的次數也在減少,為(sz-1-輪數)。

程式如下:

#define _crt_secure_no_warnings 1

#include#include#includevoid bubble_sort(int *arr, int sz)

} }}

int main()

bubble_sort(a, sz);

printf("the sorted numbers:\n");

for (i = 0; i < 10; i++)

printf("\n");

system("pause");

return 0;

}

執行結果如下:

eg:氣泡排序排序多個字串,和上面道理一樣,我們利用庫函式strcmp來比較字串。

#define _crt_secure_no_warnings 1 

#include#includevoid bubble_sort(char *str,int n)

} }}int main()

; int i = 0;

int sz = sizeof(arr)/sizeof(arr[0]);

bubble_sort(arr,sz);

for (i = 0; i < sz; i++)

system("pause");

return 0;

}

這裡arr的元素為char型的指標,傳參傳的是每個字串的首元素位址。

2.選擇排序

幾種常用的排序方法

1 氣泡排序,原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。因為是兩個相鄰的數進行比較,剛開始進行第一輪比較時總共進行6次比較,為陣列長度減一。經過第一輪的比較能夠將陣列中最大的那個數找出且放到最後一位,此時進行第二輪比較原...

幾種常用的排序方法7 希爾排序

希爾排序 希爾排序又稱為縮小增量排序,它是直接插入排序的一種改進,它的基本思想是 將整個待排記錄序列分割成若干個子串行,然後分別對子序列進行直接插入排序,待整個序列中的記錄基本有序時,再對全體記錄進行直接插入排序。上面是資料結構數上話,看起來很繞人,其實很簡單,就是一種插入排序,只是如何選取子數列 ...

幾種常用的排序方法6 計數排序

計數排序 計數排序不同於前面所有的排序,它並不是一種比較排序。計數排序假設輸入元素中每乙個都是介於0到k之間的整數,計數排序執行時間是o n 計數排序的基本思想是 對每乙個輸入的元素x,統計出小於x的元素個數,然後可以把x直接放到輸出陣列中。例如有5個元素小於x,那麼x就是陣列中第6個元素b 5 1...