我有以下代码:
public void add (int value)
{
if (numElements == list.length)
System.out.println("Can't add, list is full");
else
{
int hold=0;
for (int j = 0; j < numElements; j++)
{
int temp = list[j];
if (temp <= value)
{
hold = j;
}
}
System.arraycopy(list,hold, list, hold+1 ,numElements-hold);
list[hold] = value;
for (int i = 0; i< list.length; i++)
System.out.print(list[i] + ", ");
System.out.println();
numElements++;
}
}
目的是将整数放入数组中从最小到最大的正确位置(插入排序)。
当我运行以下测试代码时:
myList.add(100);
myList.add(50);
myList.add(200);
myList.add(25);
结果数组是:[25,50,200,100]
当我在每次调用该方法后调试它时,数组是:
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[50, 100, 0, 0, 0, 0, 0, 0, 0, 0]
[50, 200, 100, 0, 0, 0, 0, 0, 0, 0]
[25, 50, 200, 100, 0, 0, 0, 0, 0, 0]
如您所见,当尝试放入 200 时,错误正在发生。
我需要一些帮助来解决这个问题...谢谢!