这种插入排序功能应该将Drink对象数组并入,并根据它们的一个属性(成本)进行排序。该属性由getCost()获取。我不断收到NullPointer错误。代码如下:插入排序功能
public void sortDrinks(Drink[] drinks){
for(int i = 1; i <= drinks.length; i++){
Drink key = drinks[i];
int count = i-1;
while((count >= -1)&&(drinks[count].getCost() > key.getCost())){
drinks[count+1] = drinks[count];
count--;
}
drinks[count+1] = key;
}
}
需要什么样的重组?我需要-1作为标志,这意味着在当前的比较中,数字被排序,直到count和i被重新分配为止。 – 2015-02-24 01:40:46
我可能错过了重组。在这种情况下,当循环以count == 0开始时,它以count == -1退出。如果您的测试条件为count> = -1,则它再次测试true,最终计数== -2。如果您只是将> =更改为>,那么它应该可以工作。 – cassm 2015-02-24 01:54:10
我做了,不幸的是它仍然失败,并且在同一条线上,while条件行。对于这不起作用,我非常困惑。 – 2015-02-24 01:55:53