java - 插入错误 Java ArrayIndex 越界

标签 java insertion-sort

运行此代码:

public static int[] insertionSort(int[] array) {
    for (int j = 1; j < array.length; j++) {
        int cur = array[j];
        int prev = j - 1;
        while ( (prev > -1)  && (array[prev] > cur)) {

            array[cur] = array[prev];
            prev--;
        }
        array[prev + 1] = cur;
    }
    return array;

}

我在 array[cur] = array[prev]; 上收到 Indexoutofbounds 错误

这是我的测试用例:

    int[] array = { 23, 5, 3, 5, 34, 2};

为什么会出现这个错误?我觉得逻辑不错

最佳答案

 int cur = array[j];// So, 'cur' will have any number may be out of bound

在循环中,您使用的是 array[cur] = array[prev]; 并考虑超出范围的 cur = 23。基本上,cur 表示当前索引,但您将当前元素存储在其中。

关于java - 插入错误 Java ArrayIndex 越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33603267/

相关文章:

c++ - 插入排序优化

java - Java代码中的插入排序算法缺陷

Python3插入排序向后迭代不起作用

c - OpenMP 中的插入排序

java - 如何将 `Period` 添加到 `java.util.Date` ?

java - 使用 Java 和 UTF-8 编码生成有效的 XML

java - 如何在 Java 应用程序的底部创建一个栏,例如状态栏?

java - 在 Selenium WebDriver 中无法通过 java 代码运行 exe 文件

java - 如何在 Vaadin 的文本字段上创建实时 validator ?

sorting - 什么类型的输入区分插入排序和选择排序?