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

时间:2018-08-18 20:30:13

标签: java algorithm sorting

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;
    }
}

尝试使用此功能时遇到ArrayOutofBoundsIndex异常,但IDE不允许我使用调试器。有人知道发生了什么吗?我会造成一些越野车吗?

1 个答案:

答案 0 :(得分:3)

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

if(v[v.length-1] > v[v.length-1+1])

您尝试在索引v.lenght处访问数组,但是随着数组的索引从0v.length-1,您将超出范围!