菜鸟求助,关于java的插入排序的算法。

饺克力JokerLeo 2014-10-30 05:53:30
for(int i=1;i<monkeys.length;i++)
{
int height=monkeys[i].height;
String id=monkeys[i].id;
int index=i-1;

while(index>=0&&monkeys[index].height>height)
{
monkeys[index+1].height=monkeys[index].height;
monkeys[index+1].id=monkeys[index].id;
index--;
}
monkeys[index+1].height=height;
monkeys[index+1].id=id;
}

注:monkeys里装有五个类,每个类有id(分别1到5)和不同的height.共两个属性。
问题是,比如第一个元素height是5,第二个是0的话,在 monkeys[index+1].height=monkeys[index].height;这句话里,0不救被5覆盖掉了?
求助啊,,很是不理解
...全文
233 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
饺克力JokerLeo 2014-10-31
  • 打赏
  • 举报
回复
引用 3 楼 cykabc 的回复:
楼主仔细查看一下数组下标,循环开始的时候是将数组的第二个元素值赋给Height 和id,不会出现第二个元素0被第一个元素5覆盖!
恩恩 我已经明白了,谢谢啦!
饺克力JokerLeo 2014-10-31
  • 打赏
  • 举报
回复
引用 2 楼 nextval 的回复:
[quote=引用 1 楼 wbz810 的回复:] 求助啊,,大神们
index--; } monkeys[index+1].height=height; monkeys[index+1].id=id; } 这块把后一个的值又给了前一个了[/quote] 3q!!我已经搞明白了
cykabc 2014-10-30
  • 打赏
  • 举报
回复
楼主仔细查看一下数组下标,循环开始的时候是将数组的第二个元素值赋给Height 和id,不会出现第二个元素0被第一个元素5覆盖!
nextval 2014-10-30
  • 打赏
  • 举报
回复
引用 1 楼 wbz810 的回复:
求助啊,,大神们
index--; } monkeys[index+1].height=height; monkeys[index+1].id=id; } 这块把后一个的值又给了前一个了
饺克力JokerLeo 2014-10-30
  • 打赏
  • 举报
回复
求助啊,,大神们

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧