1. 程式人生 > >林維傑的專欄

林維傑的專欄


public class Bubble {


    public static void main(String[] args) {
       
        int[] values={12,1,3,5,4,7,9,0};
        sort(values);
        for(int i=0;i<values.length;i++){
            System.out.print(values[i]);
        }
    }
   
    public static void sort(int[] values){
        int temp;
        for(int i=0;i<values.length;i++){ //執行values.length次
            for(int j=0;j<values.length-i-1;
j++){
                if(values[j]>values[j+1]){//當前面的數大於後面的數是執行調換
                    temp=values[i];
                    values[i]=values[j+1];
                    values[j+1]=temp;
                }
            }
        }
    public static void sort(int[] values){
        int temp;
        for(int i=0;i<values.length;i++){ //執行values.length次
            for(int j=i;j<values.length;j++){
                if(values[i]>values[j]){//當前面的數大於後面的數是執行調換
                    temp=values[i];
                    values[i]=values[j];
                    values[j]=temp;
                }
            }
        }
       
    }

}
 


public class Bubble {//建立一個名為Bubble的類
public static void main(String args[]){//建立main函式
int nums[]={99,-10,100123,18,-978,5623,463,-9,287,49};//建立名為nums的陣列,包含10個數,併為這10個數初始化值
int a,b,t;建立3個整型變數

System.out.print("Original array is:");//螢幕輸出Original array is:這段字元
for(int i=0;i<10;i++)//迴圈
System.out.print(" "+nums[i]);//螢幕上依次顯示空格+nums[0]的數值空格+nums[1]……+nums[9]
System.out.println();
for(a=1;a<10;a++)
for(b=0:b<10-a:b++){
if(nums[b-1]>nums[b]){//當前面的數大於後面的數是執行調換
t=nums[b-1];
nums[b-1]=nums[b];
nums[b]=t;
}
}//一段for語句迴圈,意思是把數組裡大的數吊到前面,小的放到後面
System.out.print("Sroted array is:");螢幕上輸出Sroted array is:這段字元
for(int i=0;i<10;i++)//迴圈語句為後面輸出nums裡的數作準備
System.out.print(" "+nums[i]);//在螢幕上輸出空格+nums[0]空格+nums[1]……nums[9]
System.out.println();//這句不太清楚,可能是輸出空白行
}
}
氣泡排序有“大的下沉“和“小的上浮“兩種,那麼對於提問者給出的這段程式屬於"小的上浮",二樓這位說的這種是"大的下沉",寫成java,迴圈段應寫成: for(a=1;a<10;a++) for(b=0:b<10-a:b++) { if b[i]>b[i+1] t=b[i];b[i]=b[i+1];b[i+1]=t; } 另外,一樓那位仁兄的迴圈解釋有一句說反了,“當後面的數大於前面的數是執行調換”,他的語句表示的是“當前面的數大於後面的數時執行調換”
 就是把大的沉下去,小的浮上來
例如:985420
第一趟:854209
就是將最上面的兩個數比較9>8所以把8浮上來,9沉下去,變為895420,又因9>5,所以把9沉下去,5浮上來變為859420,以此類推。。。
第二趟:542089
第三趟:420589
第三趟:204589
第四趟:024589