ArrayIndexOutOfBounds在排序中

时间:2013-05-01 12:58:46

标签: java indexoutofboundsexception

我已经按如下方式编写了排序问题,但我得到了ArrayIndexOutOfBounds例外。 我无法弄明白。请帮助。

System.out.println("Enter the total no of digits to sort:-  ");

n = Integer.parseInt(br.readLine());
x = new int[n];

System.out.println("Enter the elements:- ");

for(i = 0; i < n; i++)
    x[i] = Integer.parseInt(br.readLine());

for(i = 0; i < n; i++)
{
    for(j = 0; j < n; j++)
    {
        if(x[j] > x[j+1])  //ascending order
        {
            temp = x[j];
            x[j] = x[j+1];
            x[j+1] = temp;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

由于j达到nj+1超出范围。您需要将其更改为

for(j=0;j<n-1;j++)

这样做可以确保x[j+1]在范围内。

答案 1 :(得分:0)

错误在这里:

if(x[j] > x[j+1]) {
 ....

因为j+1等于n

进行此更改:

 for(j=0;j + 1<n;j++) {
  ...