gpt4 book ai didi

java - 为什么我无法在插入排序代码java中获得输出

转载 作者:行者123 更新时间:2023-12-02 04:50:24 25 4
gpt4 key购买 nike

我在实现插入排序时无法获得输出

package app;

public class InsertionSortDemo {

public static void insertionsort1(int A[]) {
int i,j,v;
for(i=2;i<=A.length-1;i++) {
v=A[i];
j=i;
while(A[j-1]>v && j>=1) {
A[j]=A[j-1];
j--;
}
A[j]=v;
}
}

public static void main(String s[]) {
int ar[]={6,8,1,4,5,3,7,2};
insertionsort1(ar);
}
}

显示的输出:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at app.InsertionSortDemo.insertionsort1(InsertionSortDemo.java:11)
at app.InsertionSortDemo.main(InsertionSortDemo.java:23)

最佳答案

问题出在这里:

while(A[j-1]>v && j>=1)

Java 中的条件是从左到右计算的。因此,当j的值为0时,您将访问A[-1],从而导致异常。

只需更改验证 while 循环的方式即可:

while(j>=1 && A[j-1]>v)

关于java - 为什么我无法在插入排序代码java中获得输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29293063/

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