冒泡排序 c代码
冒泡排序是不是排序算法的鼻祖呢?應該是。即便是沒學過算法的小學生,你讓他正序排列一串數字,估計他的思路就是冒泡排序。冒泡排序的時間復雜度為O(n^2),和普通的插入排序一樣,要說區別吧,可能是冒泡排序是將數字從后往前插入,插入排序是從前往后插。普通場景下需要排序搞個冒泡就解決了,除非數量級特別大,不然殺雞焉用牛刀。
冒泡排序思想就是數據集中兩兩比較,找到最大的放到最后,然后重新來一遍,找到次最大值,接著再找次次最大值。直到n-1最大值都找完了,剩下的一個就是最小的。
代碼也簡單那。
//兩個數值互換 void swap(int *a, int *b) {*a = *a ^ *b;*b = *a ^ *b;*a = *a ^ *b; }//冒泡排序 void bubbleSort(int *arr, int numsSize) {int i, j;for (i = numsSize - 1; i > 0; i--){for (j = 0;j < i; j++){//兩兩比較或交換if (arr[j] > arr[j+1])swap (arr+j, arr+j+1);}} }參考資料:
1.?數據結構?: C語言版/ 嚴蔚敏,吳偉民編著
總結
- 上一篇: 动态规划 dp01 西瓜分堆问题 c代码
- 下一篇: 能手动调节的汽车外挂电脑怎么样