2

int[] aを低から高にソートするこのアルゴリズムを取得しました。

public static void sortering(int[] a){
    int temp;               

    for(int i = 0; i < a.length; i++){
    for(int j = i + 1; j < a.length; j++){
        if(a[i] > a[j]){
            temp = a[j];
            a[j] = a[i];
            a[i] = temp;
        }
    }
}
}

私がやりたいのは、それを逆にして、高いものから低いものに並べ替えることです。私はこれが次のようなことをしている公園の散歩だと思った:

public static void sorteringU(int[] a){
    int temp;

    for(int i = a.length; i < a.length; i--){
        for(int j = i - 1; j < a.length; j--){
            if(a[i] > a[j]){
                temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
        }
    }
}

私は間違っていました、これは明らかに何もしません。喜んで手伝ってくれる人はいますか?

編集:Thx JesperとSatya、うまくいきました。

4

5 に答える 5

0

これはバブル ソート アルゴリズムです。コンパレータ メソッドを変更するだけで問題ありません。

    change it from if(a[i] > a[j]) to if(a[i] < a[j])

他のコードはそのままにしておきます。

于 2013-10-28T09:19:22.970 に答える
0

Believe me you do not need to change the travering loop :). Sorting logic is hidden into if(a[i] > a[j]). Simply change change if(a[i] > a[j]) to if(a[i] < a[j]). It will work.

for(int i = 0; i < a.length; i++){
    for(int j = i + 1; j < a.length; j++){
        if(a[i] < a[j]){
            temp = a[j];
            a[j] = a[i];
            a[i] = temp;
        }
    }
}
于 2013-10-28T09:11:36.553 に答える