当前位置: 代码迷 >> J2SE >> 初学者,关于java的插入排序的算法
  详细解决方案

初学者,关于java的插入排序的算法

热度:80   发布时间:2016-04-23 20:09:02.0
菜鸟求助,关于java的插入排序的算法。
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覆盖掉了?
求助啊,,很是不理解
------解决思路----------------------
引用:
求助啊,,大神们


index--;
}
monkeys[index+1].height=height;
monkeys[index+1].id=id;
}

这块把后一个的值又给了前一个了
------解决思路----------------------
楼主仔细查看一下数组下标,循环开始的时候是将数组的第二个元素值赋给Height 和id,不会出现第二个元素0被第一个元素5覆盖!