旺旺 發問時間: 電腦與網際網路程式設計 · 1 0 年前

由大到小排列…JAVA

這題在書上範例找到…我有個問題請教,這程式是由小到大排成,那我要由大到小呢?

public class BubbleSort {

public static void main(String[] argv) {

int[] data = {23,54,33,5,7,46,99,35}; // 為排序的資料

int temp; // 用來交換元素的暫存變數

for(int i = 0;i < data.length - 1;i++) {

// 共需進行元素個數-1輪

for(int j = 0;j < data.length - 1 - i;j++ ) {

// 第i輪比對到倒數第i+1個元素

if(data[j] > data[j + 1]) {

temp = data[j];

data[j] = data[j + 1];

data[j + 1] = temp;

}

}

for(int k:data) {

System.out.print(\" \" + k);

}

System.out.println(\"\");

}

}

}

可以幫我加個註解嗎?

1 個解答

評分
  • 1 0 年前
    最佳解答

    public class BubbleSort {

    public static void main(String[] argv) {

    int[] data = { 23, 54, 33, 5, 7, 46, 99, 35}; // 為排序的資料

    int temp; // 用來交換元素的暫存變數

    for (int i = 0; i < data.length - 1; i++) {

    // 共需進行元素個數-1輪

    //--------------------------------------------------------------↓

    for (int j = 0; j < data.length - 1 - i; j++) {

    // 第i輪比對到倒數第i+1個元素

    //↓這裡做修改就可以了

    if (data[j] > data[j + 1]) {

    temp = data[j];

    data[j] = data[j + 1];

    data[j + 1] = temp;

    }

    }

    for (int k:data) {

    //每跑一次比較後的迴圈,就印出data陣列的內容

    System.out.print(" " + k);

    }

    //-----------------------------------------------------------↑

    //換行

    System.out.println("");

    }

    }

    }

    ---------

    冒泡排序演算法的運作如下:

    1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

    2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

    3.針對所有的元素重複以上的步驟,除了最後一個。

    4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

    ---------

    程式結果:

    54 33 23 7 46 99 35 5

    54 33 23 46 99 35 7 5

    54 33 46 99 35 23 7 5

    54 46 99 35 33 23 7 5

    54 99 46 35 33 23 7 5

    99 54 46 35 33 23 7 5

    99 54 46 35 33 23 7 5

    2006-06-17 10:51:30 補充:

    這我就不清楚了~~ sorry喔!!^^///

    我安裝的版本是jdk-1_5_0_07-windows-i586-p;執行是用Gel(用Dos也Ok)

    提供讓你參考嘍!^^

    2006-06-18 00:52:54 補充:

    http://www.cis.nctu.edu.tw/~gis91610/java/loop.htm...

    For/In迴圈簡介

    J2SE5.0的新功能之一是For/In迴圈,語法如下:

    --------------------------

    for (declaration : expression)

    statement

    其中 expression 必須是iterable 介面相容的敘述,declaration 是元素變數, 型態必須與expression中的元素型態相容。包括陣列或是Collection 都可以使用 For/In迴圈。

還有問題?馬上發問,尋求解答。