gpt4 book ai didi

java - 冒泡排序编译但越界

转载 作者:行者123 更新时间:2023-12-02 05:11:03 26 4
gpt4 key购买 nike

我在让简单的冒泡排序数组正常工作时遇到问题。它可以编译,但运行程序时出现越界异常

我知道什么是越界错误,但我不明白为什么会在这种情况下发生。

有哪位高手知道如何解决这个问题吗?谢谢

  public class BubbleSort
{

public static void main(String[] args)
{
// create the array that we want to sort with buble sort alogorithm
int intArray[] = new int[]{5, 90, 35, 45, 150, 3};

//print the array before the bubble sort
System.out.println("Array before Bubble Sort");
for (int i = 0; i < intArray.length; i++)
{
System.out.print(intArray[i] + " ");
}

// sort an array using bubble sort algorithm
bubbleSort(intArray);
System.out.println("");

// print array after sorting using bubble sort
System.out.println("Array after Bubble Sort");

for (int i = 0; i < intArray.length; i++)
{
System.out.print(intArray[i] + "");
}

}

private static void bubbleSort(int[] intArray)
{
int n = intArray.length;
int hold = 0;

for (int i = 0; i < n; i++) //allows us to pass or loop around array
{
for (int j = 1; j < (n - i); j++) //allows on pass or comparison
{
if (intArray[j] > intArray[j + 1]) //swap the elements!
{
hold = intArray[j];
intArray[j] = intArray[j + 1];
intArray[j + 1] = hold;
}
}
}
}
}

最佳答案

在外循环的第一次迭代中,i==0

因此,在内循环中j将从1转到n-i-1==n-1

j==(n-1)时,intArray[j+1]会抛出ArrayIndexOutOfBoundsException

关于java - 冒泡排序编译但越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com