回顧C 經典演算法氣泡排序

2022-03-31 05:13:35 字數 1582 閱讀 7158

冒泡演算法的原理:

舉例說明:要排序陣列:int arr=;

第一趟排序:

第一次排序:6和3比較,6大於3,交換位置: 3 6 8 2 9 1

第二次排序:6和8比較,6小於8,不交換位置:3 6 8 2 9 1

第三次排序:8和2比較,8大於2,交換位置: 3 6 2 8 9 1

第四次排序:8和9比較,8小於9,不交換位置:3 6 2 8 9 1

第五次排序:9和1比較:9大於1,交換位置: 3 6 2 8 1 9

第一趟總共進行了5次比較, 排序結果: 3 6 2 8 1 9

第二趟排序:

第一次排序:3和6比較,3小於6,不交換位置:3 6 2 8 1 9

第二次排序:6和2比較,6大於2,交換位置: 3 2 6 8 1 9

第三次排序:6和8比較,6大於8,不交換位置:3 2 6 8 1 9

第四次排序:8和1比較,8大於1,交換位置: 3 2 6 1 8 9

第二趟總共進行了4次比較, 排序結果: 3 2 6 1 8 9

第三趟排序:

第一次排序:3和2比較,3大於2,交換位置: 2 3 6 1 8 9

第二次排序:3和6比較,3小於6,不交換位置:2 3 6 1 8 9

第三次排序:6和1比較,6大於1,交換位置: 2 3 1 6 8 9

第二趟總共進行了3次比較, 排序結果: 2 3 1 6 8 9

第四趟排序:

第一次排序:2和3比較,2小於3,不交換位置:2 3 1 6 8 9

第二次排序:3和1比較,3大於1,交換位置: 2 1 3 6 8 9

第二趟總共進行了2次比較, 排序結果: 2 1 3 6 8 9

第五趟排序:

第一次排序:2和1比較,2大於1,交換位置: 1 2 3 6 8 9

第二趟總共進行了1次比較, 排序結果: 1 2 3 6 8 9

最終結果:1 2 3 6 8 9

從上面可以得出:n個數字進行排序,需要經過n-1趟排序,每i趟排序n-i次

使用雙重循壞,外層控制循壞多少趟,內層控制每趟循壞的次數

for (int i = 0; i < list.length-1; i++)

}

**實現:

using system;

namespace 氣泡排序

; int temp = 0;

for (int i = 0; i < arr.length - 1; i++) //外層迴圈控制排序趟數}}

foreach (var ar in arr)

console.readline();}}

}

實現的氣泡排序:

經典演算法 氣泡排序

題目從小到大排序陣列 原理 小的數放左邊,大的數放右邊。for 迴圈 的巢狀迴圈。外層迴圈控制排序的趟數 for int i 0 i arr.length 1 i 趟數為需要排序的字元多少,沒進行一趟,則排出乙個最大值。內層迴圈控制每一趟排序的次數 for int j 0 j arr.length ...

經典排序演算法,氣泡排序

氣泡排序是本人在大一學習c語言的時候就已經學過了,最近這段時間想起來把比較經典的排序演算法拿來回顧一下,鞏固一下知識。氣泡排序的核心就是比較相鄰兩個數的大小,然後將小的 或者大的 放到前面去,經過一趟之後,就能把最小或者最大的放到最前面,第二趟排序的時候,第乙個數不參與排序,從第二個數開始,經過一趟...

經典排序演算法 氣泡排序

對列表的無序部分從頭至尾掃瞄一遍,掃瞄過程中通過不斷交換相鄰兩個元素,最終把最大 小 元素交換到列表末尾。首先比較第一和第二個數,把較大的放在第二位。比較第二個和第三個數,再把較大的數放在第三位。如此比較下去,直到比較完最後兩個數。這樣就把整個列表中最大的數交換到了末尾。上面三步只是完成了對列表無序...