c#中插入排序的索引超出范围

本文关键字:范围 索引 插入排序 | 更新日期: 2023-09-27 18:24:41

我正在对生成的10个随机数进行排序,必须在gui中一步一步地进行排序。但是在插入排序中,当我按下按钮进行排序时,它会出现索引超出范围的问题。我知道它的给定问题是i_ins++的bcoz,但我也无法删除它。

    public void InsertionSort()
    {
        int j;
        int c_value;
        c_value = generate[i_ins];
        j = i_ins - 1;
        while (j >= 0 && generate[j] > c_value)
        {
            generate[j + 1] = generate[j];
            show1(generate);
            j--;
        }
        generate[j + 1] = c_value;
        i_ins++;
        show1(generate);
    }

c#中插入排序的索引超出范围

您的代码中还有其他问题。但是,IndexOutOfBound是由以下行引起的:

c_value = generate[i_ins];

假设i_ins是数组的大小,它应该是

c_value = generate[i_ins - 1];