0

今日、クラスでバブルソートのチュートリアルがあり、修正方法がわからないというエラーが発生しました。

スレッド"main"の例外java.lang.ArrayIndexOutOfBoundsException:8 at BubbleSorter.main(BubbleSorter.java:24)

評価はされていませんが、これからも続けていきたいと思います。ありがとうございました。以下は私のコード全体です。

public class BubbleSorter {
    public static void main(String[] args)
    {
        int i;
        int array[] = { 12, 9, 4, 99, 120, 1, 3, 10 };
        System.out.println("Array Values before the sort:\n");
        for (i = 0; i < array.length; i++)
            System.out.print(array[i] + " ");
        System.out.println();
        System.out.println();

        bubble_srt(array, array.length);

        System.out.print("Array Values after the sort:\n");
        for (i = 0; i < array.length; i++)
            ;
        System.out.print(array[i] + " ");
        System.out.println();
        System.out.println("PAUSE");
    }

    private static void bubble_srt(int[] array, int length) {
        int i, j, t = 0;
        for (i = 0; i < length; i++) {
            for (j = 1; j < (length - 1); j++) {
                if (array[j - 1] > array[j]) {
                    t = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = t;
                }
            }
        }
    }
}
4

4 に答える 4

7

小さな間違いがあります:

これ:

for (i = 0; i<array.length; i++);
System.out.print(array[i] + " ");

次のようにする必要があります。

//                              v - Semicolon removed
for (i = 0; i<array.length; i++)
    System.out.print(array[i] + " ");
于 2013-02-19T15:15:39.940 に答える
2

また変更

for (j = 1; j < (length - 1); j++) {

for (j = 1; j < length; j++) {

配列の最後の要素が抜けています!

出力

Array Values before the sort:

12 9 4 99 120 1 3 10 

Array Values after the sort:
1 3 4 9 10 12 99 120 
PAUSE
于 2013-02-19T15:19:26.473 に答える
0

2行を変更する必要があります

for (i = 0; i < array.length; i++)
        ;
System.out.print(array[i] + " ");

for (i = 0; i < array.length; i++)
    System.out.print(array[i] + " ");

for (j = 1; j < (length - 1); j++) {

for (j = 1; j < (length); j++) {
于 2013-02-19T15:22:14.060 に答える
0

18 行目では、; を取り除く必要があります。または括弧 {

于 2013-02-19T15:26:49.817 に答える