我正在对生成的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);
}
答案 0 :(得分:5)
您的代码中还有其他问题。但是,IndexOutOfBound是由以下行引起的:
c_value = generate[i_ins];
假设i_ins
是数组的大小,它应该是
c_value = generate[i_ins - 1];