C# 冒泡排序

冒泡排序的運行原理(好理解):數組

  1. 比較相鄰的元素。若是第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素做一樣的工做,從開始第一對到結尾的最後一對。這步作完後,最後的元素會是最大的數。
  3. 針對全部的元素重複以上的步驟,除了最後一個。
  4. 持續每次對愈來愈少的元素重複上面的步驟,直到沒有任何一對數字須要比較。

備註:上述講解來自 維基百科 冒泡排序spa

我的理解:blog

第一輪:第一個元素 與後邊第二元素比較,若是第二個元素大,就交換數值,這樣第一個元素仍是最大值,而後與第三個元素比較,若是第三個元素大,仍是交換數值,這樣第一個元素仍是最大值,一樣,依次與後邊的全部元素比較,這樣第一輪比較以後就能保證第一個元素爲最大值,排序

第二輪:第二個元素與後邊第三個元素比較,若是第三個元素大,就交換數值,第二個元素與第四個元素比較,若是第四個元素大,仍是交換數值,一樣,第二個元素與後邊元素依次比較,這樣,第二輪結束,第二個元素就是第二大數值。it

一樣 第三輪,第四輪.... 直到最後一個元素。這樣就是 冒泡排序 (以上是按從大到小排序)class

 

代碼以下(從大到小排序):原理

int[] sort = new int[13] { 1, 4, 89, 34, 56, 40, 59, 60, 39, 1, 40, 90, 48 };  // 輸入一個數組
 for (int i = 0; i < sort.Length; i++)  // 循環每一個元素。
            {
                for (int j = i+1; j < sort.Length; j++) // 每一個元素都與它以後的元素進行一對一比較。
                {
                    if (sort[i] < sort[j])  // 當有值比sort[i]大時,就交換數值。
                    { 
                    int temp = sort[i];
                    sort[i] = sort[j];
                    sort[j] = temp;    // sort[i] 獲取的是始終爲最大值。
                    }
                }
            }
 for (int i = 0; i < sort.Length; i++)  // 輸出
            {
                Console.Write(sort[i] + " ");
            }
相關文章
相關標籤/搜索