18.利用氣泡排序法(Bubble Sort)將數列資料(3,5,9,4,7)依遞增順序排序,在第一次排序循環結束後,此數列變成下列何者?
(A) (3,5,4,9,7)
(B) (3,5,4,7,9)
(C) (5,3,4,9,7)
(D) (5,3,9,4,7)

答案:登入後查看
統計: A(282), B(944), C(124), D(92), E(0) #1431516

詳解 (共 4 筆)

#2898162

泡泡排序法的原理是將一組數字中的第一位與後一位相比較,若後一位數字較大,則位置對調,再將第二位數與第三位數做比較,若後一數字較大,再對調位置

35947→35947→35947→35497→35479


比如說:

4 3 2 5 1,五個數字比較的話,第一位與第二位比較,也就是4與3做比較,比較結果成為

3 4 2 5 1,再比較第二位跟第三位數,也就是4與2比較,比較結果為

3 2 4 5 1,再比較第三跟第四位數,也就是4與5比較,但是由於4比5小,所以比較結果不變

3 2 4 1 5,再比較第四跟第五位數,也就是5與1比較,比較結果為

以上為第一輪比較結果,由於並沒有完成排列順序,故接著第二輪的比較 

3 2 4 1 5,重新比較第一與第二位數,3與2比較,比較結果為

2 3 4 1 5,再來第二位與第三位比較,3與4比較,3比4小,比較結果不變

2 3 4 1 5,再來第三位與第四位比較,4與1比較,比較結果為

2 3 1 4 5,再來4與5的比較結果也不變

以上為第二輪比較結果,一樣沒有完成比較順序,再比較第三輪

2 3 1 4 5,重新比較第一與第二位數,2與3比較,比較不變

2 3 1 4 5,再來第二位與第三位比較,3與1比較,比較結果為

1 3 4 5,由於第三位開始順序已排完成,所以比較結果皆不變

接下來繼續比較第四輪

1 3 4 5,重新比較第一與第二位數,2與1比較,比較結果為 

1 2 3 4 5,雖然已經排序完成,但迴圈還是會繼續比較,但比較結果皆不變 

1原本排列的位置是在最後一位,最後跑到第一位,就像泡泡從水底往上浮起,故稱之為泡泡排序

 程式需要由兩個迴圈來控制,第一個迴圈控制要比較幾輪,第二個迴圈就控制要比較第幾位數

37
1
#2295631

氣泡排序法(Bubble Sort)是最容易理解和實作的一種排序演算法,也翻譯作冒泡排序法。由於它很容易學習,所以也是許多演算法課程中第一個學習的排序演算法。

 

由於他的演算法過程會將最大的數值移動到陣列最後面,而較小的數值則逐漸的往陣列前端移動,就像有許多氣泡慢慢從底部浮出,因此成為氣泡排序法。他的運作流程如下:

  1. 比較相鄰的兩個元素,若前面的元素較大就進行交換。
  2. 重複進行1的動作直到最後面,最後一個元素將會是最大值。
  3. 重複進行1,2的動作,每次比較到上一輪的最後一個元素。
  4. 重複進行以上動作直到沒有元素需要比較。

 

http://emn178.pixnet.net/blog/post/93779892-%E6%B0%A3%E6%B3%A1%E6%8E%92%E5%BA%8F%E6%B3%95%28bubble-sort%29

30
1
#2285069

35947→35947→35947→35497→35479

12
0
#7305067
氣泡排序法(Bubble Sort)是一...
(共 285 字,隱藏中)
前往觀看
0
0

私人筆記 (共 1 筆)

私人筆記#659207
未解鎖
答案是b
(共 4 字,隱藏中)
前往觀看
0
2