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

时间:2012-02-13 20:50:20

标签: c#

我正在对生成的10个随机数进行排序,并且必须在gui中逐步进行排序。但在插入排序时,当我按下按钮进行排序时,它给出了索引超出范围的问题我知道它给出问题bcoz的i_ins ++但我无法删除它也bcoz我的排序在gui将不会一步一步所以任何对此进行解决或修改,它将逐步运行,也不会出错。

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

1 个答案:

答案 0 :(得分:5)

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

c_value = generate[i_ins];

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

c_value = generate[i_ins - 1];