演算法排序之氣泡排序
阿新 • • 發佈:2018-12-10
最近一段時間一段時間一直在學習演算法排序,突然間就想把以前學的排序演算法來寫一寫。
今天就先來說一下氣泡排序,下就然我們來看一下氣泡排序的幾個特點和其中的一種演算法實現:
1、比較相鄰的元素。如果第一個比第二個大(小),就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大(小)的數。
3、針對所有的元素重複以上的步驟,除了最後已經選出的元素(有序)。
4、持續每次對越來越少的元素(無序元素)重複上面的步驟,直到沒有任何一對數字需要比較,則序列最終有序。
void bubble_sort(int arr[], int len) { int i, j; for (i = 0; i < len - 1; i++) //外層迴圈控制趟數,總趟數為len-1 for (j = 0; j < len - 1 - i; j++) //內層迴圈為當前i趟數 所需要比較的次數 if (arr[j] > arr[j + 1]) swap(arr[j], arr[j + 1]);
可能寫的有點簡單了,以後有時間了再來改。