Bubble Sort 泡泡排序法 - Cedric's 學習備忘錄- 痞客邦

文章推薦指數: 80 %
投票人數:10人

泡泡排序法的原理是將一組數字中的第一位與後一位相比較,若後一位數字較大,則位置對調,再將第二位數與第三位數做比較,若後一數字較大, ... 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



請為這篇文章評分?