Java 为什么这种排序算法不起作用?

Java 为什么这种排序算法不起作用?,java,algorithm,sorting,Java,Algorithm,Sorting,尝试使用此函数时,我遇到ArrayOutofBoundsIndex异常,但IDE不允许我使用调试器。有人知道发生了什么吗?我造成了一些错误循环吗?想象一下当我等于v.length-1时会发生什么,你的if语句: public static int[] organizaC(int[] v) { int i, temp = 0; if (v.length > 0) { for (i = 0; i < v.length; i++) {

尝试使用此函数时,我遇到ArrayOutofBoundsIndex异常,但IDE不允许我使用调试器。有人知道发生了什么吗?我造成了一些错误循环吗?

想象一下当我等于v.length-1时会发生什么,你的if语句:

public static int[] organizaC(int[] v) {
    int i, temp = 0;
    if (v.length > 0) {
        for (i = 0; i < v.length; i++) {
            if (v[i] > v[i + 1]) {
                temp = v[i];
                v[i] = v[i + 1];
                v[i + 1] = temp;
                i = 0;
            }
        }
        return v;
    } else {
        return null;
    }
}

您试图在索引v.lenght处访问您的数组,但当数组的索引从0变为v.length-1时,您就出界了

如果您使用单个项对数组进行排序,那么v[i+1]是什么?谢谢。我一直认为错误在I=0时的循环重置中。谢谢
if(v[v.length-1] > v[v.length-1+1])