首页 > 解决方案 > 为什么这种排序算法不起作用?

问题描述

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 不允许我使用调试器。有谁知道发生了什么?我是否造成了一些错误的循环?

标签: javaalgorithmsorting

解决方案


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

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

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


推荐阅读