[ C語言生活記事] Sorting algorithm - (1) Bubble sort | 阿鐵的碼 ...

文章推薦指數: 80 %
投票人數:10人

排序演算法(1) - Bubble sort用兩個迴圈來實現,程式複雜度O( n^2 ) 排序演算法(1)-Bubblesort 用兩個迴圈來實現,程式複雜度O(n^2) 假設有N項,因為每次抓左右兩項做比較,因此第一個迴圈為N-1 由於每次的比較都會將當次最大的數搬到右側,因此第一個迴圈每次可以將最大的數"浮至最上方", 故第二個迴圈每次比較的數量越來越少。

範例: 5,4,3,6,7,8,14,11,12,1,2,9,10,13 第一次結束後,最大的數會浮至最上方(右方) 4 3 5 6 7 8 11 12 1 2 9 10 13 14 因此下一次只需要比較N-2次,就可以得到第二大的數,再下一次N-3....以此類推。

  #include #include voidBubbleSort(intarr[],intlen) { inti,j,temp; for(i=0;iarr[j+1])//比大小後交換 { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } intmain() { inti; intarr[]={5,4,3,6,7,8,14,11,12,1,2,9,10,13}; bubble_sort(arr,14); for(i=0;i<14;++i) printf("%d",arr[i]); return0; } Result: sh-4.2$gcc-omain*.c sh-4.2$main 1234567891011121314 Csortalgorithm 回首頁



請為這篇文章評分?