1. 程式人生 > >演算法排序之氣泡排序

演算法排序之氣泡排序

   最近一段時間一段時間一直在學習演算法排序,突然間就想把以前學的排序演算法來寫一寫。

   今天就先來說一下氣泡排序,下就然我們來看一下氣泡排序的幾個特點和其中的一種演算法實現:

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]);       

可能寫的有點簡單了,以後有時間了再來改。