返回列表 發帖

氣泡排序 VS. 選擇排序

本帖最後由 tonyh 於 2019-6-17 19:48 編輯

氣泡排序法(Bubble sort)
將要排序的對象分作兩部份,一個是已排序的,一個是未排序的。排序時若是從小到大,最大元素會如同氣泡一樣移至右端,其利用比較相鄰元素的方式,將較大元素交換至右端,所以較大的元素會不斷往右移動,直到適當的位置為止。

排序前:95 27 90 49 80 58 6 9 18 50

#01.  27 90 49 80 58 6 9 18 50 [95];95浮出
#02.  27 49 80 58 6 9 18 50 [90 95];90浮出
#03.  27 49 58 6 9 18 50 [80 90 95];80浮出
#04.  27 49 6 9 18 50 [58 80 90 95] ......
#05.  27 6 9 18 49 [50 58 80 90 95] ......
#06.  6 9 18 27 [49 50 58 80 90 95] ......
#07.  6 9 18 [27 49 50 58 80 90 95] ......
#08.  6 9 [18 27 49 50 58 80 90 95] ......
#09.  6 [9 18 27 49 50 58 80 90 95] ......
#10.  [6 9 18 27 49 50 58 80 90 95] ......


選擇排序(Selection sort)
將要排序的對象分作兩部份,一個是已排序的,一個是未排序的。如果排序是由小而大,從後端未排序部份選擇一個最小值,並放入前端已排序部份的最後一個。例如:

排序前:70 80 31 37 10 1 48 60 33 80

#01.  [1] 80 31 37 10 70 48 60 33 80;選出最小值1
#02.  [1 10] 31 37 80 70 48 60 33 80;選出最小值10
#03.  [1 10 31] 37 80 70 48 60 33 80;選出最小值31
#04.  [1 10 31 33] 80 70 48 60 37 80 ......
#05.  [1 10 31 33 37] 70 48 60 80 80 ......
#06.  [1 10 31 33 37 48] 70 60 80 80 ......
#07.  [1 10 31 33 37 48 60] 70 80 80 ......
#08.  [1 10 31 33 37 48 60 70] 80 80 ......
#09.  [1 10 31 33 37 48 60 70 80] 80 ......

返回列表