这个气泡排序程序给了我"array out of bound exception"可以帮助我解决这个问题


class Bubble {
public static void main(String args[]) {
int[] a={20, 22, 19, 45, 9};
int temp;
for (int i = 0; i <= a.length - 1; i++) {
for (int j = 0; j <= a.length - 1; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.println(a[i] + "");
}
}
}

下次请正确格式化代码。这会让帮助你变得更容易。

您的主要问题是,在对j进行迭代的嵌套循环中,您将比较a[j]a[j+1]。由于j的最大范围是4(数组的大小是5(,在最后一个索引中,您将无法将a[4]a[5]进行比较,因为a[5]不存在。这就是例外情况。

为了解决这个问题,你应该让j迭代如下:

int j=0; j < a.length-2; j++

你不必处理最后一个索引,因为它没有任何后续的东西可以比较。

相关内容

最新更新