寫這個系列的初衷就是網上原始碼質量參差不齊,我能保證的是個人上傳**都經過程式驗證,當然有可能存在不正確的地方,歡迎斧正,第一時間修改,謝謝
冒泡法,可以理解為像個泡泡一樣上浮,我們需要的東西上浮,不需要的東西下沉,不斷進行兩兩相互比較,滿足條件則互動兩個資料之間的位置
舉例:
221135
9929 我們需要公升序(從小到大排列) array[i]
> array[i+1]
第一次:
221135
9929i:0
22>
11 交換 11223
59929i:122
>
3 交換 11322
59929i:222
>
5 交換 1135
2299
29i:322
>
99 不交換 1135
2299
29 i:4
99>
29 交換 1135
2229
99第二次:113
5222999i:0
11>
3 交換 3115
2229
99i:111
>
5 交換 3511
2229
99i:211
>
22 不交換 3511
2229
99i:322
>
29 不交換 3511
2229
99第三次:35
1122
2999i:0
3>
5 不交換 3511
2229
99i:15
>
11 不交換 3511
2229
99i:211
>
22 不交換 3511
2229
99第四次:35
1122
2999i:0
3>
5 不交換 3511
2229
99i:15
>
11 不交換 3511
2229
99第五次:35
1122
2999i:0
3>
5 不交換 3511
2229
99
以上就是完成一次排序
1 每次都是相鄰數值進行比較,滿足條件則互動數字
2 由於每次迴圈完成之後,最後數值已經滿足條件,可以直接跳過提公升效率
void
sort_bubb
(int array,
int n)
;//兩兩比較,所以只要執行到 array[n-3] < array[n-2]則一輪迴圈結束
for(
int i =
0; i < n -
1; i++)}
}}
尹成老師帶你學演算法
資料結構核心原理與演算法應用
冒泡演算法(兩兩比較,最小上冒)
假設排序陣列a n 按從小到大排列 int a int length a.length 準備好交換方法 private void swap int j,int i 排序好後列印 for int k 0 k length k 1.冒泡演算法 兩兩比較,把小的往左移 a n 和 a n 1 比較,如果a...
演算法 互斥集合
表示互斥集合 disjoint set 時,經常會使用另一種具有獨特形態的樹結構 並查集 union find 資料結構。互斥集合 假設有n名客人參加聚會,主持人要求相同生日的人組成一隊。話音剛落,客人們立刻開始組隊。剛開始時,因為不知道哪位客人的生日與自己的生日相同,所以大家只能單獨徘徊。不過,只...
排序演算法集合
氣泡排序 public static int maopao int param return param 快速排序 public static int quick int param,int left,int right return param 分割陣列,相當於分治演算法,快速排序的核心 priv...