0

Javaで単純な整数配列を使用してバブルソートを実装しようとしています。ただし、問題があるようです。今、私は ArrayList を使用することが最良の選択肢であることを知っており、私もそうします。しかし、単純な整数配列でソートされないのはなぜですか。コードは次のとおりです

package sort;

public class BubbleSort {

    int array[]={1,5,3,32,54,6,87,5,1};
    int temp=0;
public void enter(){
    for(int i=0;i<array.length;i++){
        for(int j=0;j<(array.length-i);j++){
            if(array[j]>=array[j+1]){


                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                }

        }
    }
}
public void show(){

    for(int i:array){
    System.out.println(i);
    }
}
public static void main(String str[]){

    new BubbleSort().Enter();
    new BubbleSort().Show();
}
}

入力したものと同じ配列を生成します。何も変わっていません。単純な配列と ArrayList または Vector の違いは、配列サイズの動的な時間拡張を提供することだけです。他に何かありますか? 単純な配列は、文字列と同じように、操作されるたびに異なるインスタンスを作成するということですか? ここではそうしているようです。

4

4 に答える 4

1

正しい BubbleSort コードは次のとおりです。

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

        }
    }

他の誰かが探しているのに役立つことを願っています。

于 2014-01-08T01:42:19.423 に答える