20200613 02 演算法集合 冒泡法

2021-10-07 03:58:00 字數 1532 閱讀 1293

寫這個系列的初衷就是網上原始碼質量參差不齊,我能保證的是個人上傳**都經過程式驗證,當然有可能存在不正確的地方,歡迎斧正,第一時間修改,謝謝

冒泡法,可以理解為像個泡泡一樣上浮,我們需要的東西上浮,不需要的東西下沉,不斷進行兩兩相互比較,滿足條件則互動兩個資料之間的位置

舉例:

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...