選擇排序(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 ......
氣泡排序法(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] ...... |