幾種常用的排序方法
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...