總網頁瀏覽量

2013年1月15日 星期二

泡沫排序法 java

java的類別庫有提供快速排序法的method
首先在程式碼第一行
import java.util.Arrays;
宣告陣列 int [] a = {2,4,6,8,1,3,5,7};
呼叫method
public static void sort(int[] a);


以泡沫排序法將n筆數字由大到小排列

思考:

將第一個數字拿來與後面的數字比較,如果後面的數字比第一個數字大
那麼就將這兩個數字對調。比到最後一筆資料為止。表示一回合結束。
這邊設立一個key指向第二筆資料以及一個loop去執行一個回合的比較。
每個回合可以確保最大的數字調到最前端
因此至多執行n個回合資料就會排序完畢
因此設立一個key指向第一筆資料,一個回合結束key指向下一筆資料
當key指到最後一筆資料時代表排序結束


public class selection_sort
{
public static void main(String args[])
{
int[] num = {11,3,6,2,20,16,9};

for(int i=0;i<num.length;i++)//第i回合
{
 for(int j=i+1;j<num.length;j++)//一回合的比較
 {
int temp;
  if(num[j]>num[i])
  {
  temp = num[i];
  num[i]=num[j];
  num[j]=temp;
  }
 }
}
for(int i =0;i<num.length;i++)
{
System.out.print(num[i]+" ");
}
}
}

3 則留言: