Bubble Sort 泡泡排序法 - Cedric's 學習備忘錄- 痞客邦
文章推薦指數: 80 %
泡泡排序法的原理是將一組數字中的第一位與後一位相比較,若後一位數字較大,則位置對調,再將第二位數與第三位數做比較,若後一數字較大, ...
Cedric's學習備忘錄
跳到主文
程式語言、英文學習備忘
部落格全站分類:不設分類
相簿
部落格
留言
名片
Dec25Fri200902:14
BubbleSort泡泡排序法
泡泡排序法的原理是將一組數字中的第一位與後一位相比較,若後一位數字較大,則位置對調,再將第二位數與第三位數做比較,若後一數字較大,再對調位置
比如說:
43251,五個數字比較的話,第一位與第二位比較,也就是4與3做比較,比較結果成為
34251,再比較第二位跟第三位數,也就是4與2比較,比較結果為
32451,再比較第三跟第四位數,也就是4與5比較,但是由於4比5小,所以比較結果不變
32415,再比較第四跟第五位數,也就是5與1比較,比較結果為
以上為第一輪比較結果,由於並沒有完成排列順序,故接著第二輪的比較
32415,重新比較第一與第二位數,3與2比較,比較結果為
23415,再來第二位與第三位比較,3與4比較,3比4小,比較結果不變
23415,再來第三位與第四位比較,4與1比較,比較結果為
23145,再來4與5的比較結果也不變
以上為第二輪比較結果,一樣沒有完成比較順序,再比較第三輪
23145,重新比較第一與第二位數,2與3比較,比較不變
23145,再來第二位與第三位比較,3與1比較,比較結果為
21345,由於第三位開始順序已排完成,所以比較結果皆不變
接下來繼續比較第四輪
21345,重新比較第一與第二位數,2與1比較,比較結果為
12345,雖然已經排序完成,但迴圈還是會繼續比較,但比較結果皆不變
1原本排列的位置是在最後一位,最後跑到第一位,就像泡泡從水底往上浮起,故稱之為泡泡排序(什麼爛名字)
程式需要由兩個迴圈來控制,第一個迴圈控制要比較幾輪,第二個迴圈就控制要比較第幾位數
由小排列至大的語法大致如下:
publicclassTestBubbleSort{ publicstaticvoidmain(String[]args){ int[]arr={1,3,5,7,9,2,4,6,8}; print(arr); bubbleSort(arr); print(arr); } publicstaticvoidbubbleSort(int[]a){ inttemp; for(inti=a.length-1;i>=1;i--){ for(intj=0;j<=i-1;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } publicstaticvoidprint(int[]a){ for(inti=0;i
延伸文章資訊
- 1[C++] 氣泡排序法(Bubble sort)
氣泡排序的意思,wiki 裡面是這麼說明: 又稱為泡沫排序,是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序 ...
- 2氣泡排序法(Bubble Sort) - 小殘的程式光廊
氣泡排序法(Bubble Sort) · 比較相鄰的兩個元素,若前面的元素較大就進行交換。 · 重複進行1的動作直到最後面,最後一個元素將會是最大值。 · 重複進行1,2的 ...
- 3冒泡排序- 维基百科,自由的百科全书
冒泡排序(英語:Bubble Sort)又稱為泡式排序,是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。
- 4Java 泡沫排序法 - 翻轉工作室
所謂排序法(Sort)即是將一大堆資料,利用某一關鍵內容由最大到最小,或最小到最大依序排列。吾人可能會認為排序演算法應該不是很重要才對,如果僅排序 100 筆以下 ...
- 5【Day21】[演算法]-排序Sort & 氣泡排序法Bubble Sort - iT 邦幫忙
氣泡排序法(Bubble Sort)又稱交換排序法,原理是從第一筆資料開始,逐一比較相鄰兩筆資料,如果兩筆大小順序有誤則做交換,反之則不動,接者再進行下一筆資料比較,所有 ...