为什么这段代码可以完成数组的排序??求解

lince 2016-03-20 10:49:23
为什么这段代码可以完成数组的排序??j的值不是被覆盖掉了吗?

for (int i = 0; i < mylist.length; i++) {
for (int j = i+1; j < mylist.length; j++) {
if (mylist[i]>mylist[j]) {
mylist[j]=mylist[i];
}
}
}
for (int i = 0; i < mylist.length; i++) {
System.out.print(mylist[i]+"\t");
}
...全文
189 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
豫让_______ 2016-03-24
  • 打赏
  • 举报
回复
提问带脑子,实验清楚再问。


Integer[] mylist = new Integer[]{
6,
7,
3,
5
};

for (int i = 0; i < mylist.length; i++) {
for (int j = i+1; j < mylist.length; j++) {
if (mylist[i]>mylist[j]) {
mylist[j]=mylist[i];
}
}
}
for (int i = 0; i < mylist.length; i++) {
System.out.print(mylist[i]+"\t");
}


Spinach007 2016-03-23
  • 打赏
  • 举报
回复
你的肯定不可以,按2楼的改了后,还是行的。 搞不清的问题自己代数进去。
大明1986 2016-03-23
  • 打赏
  • 举报
回复
能排序才有个鬼,完全是覆盖
lince 2016-03-22
  • 打赏
  • 举报
回复
引用 2 楼 Broken3 的回复:
你这排序代码有点问题,只是把值覆盖了,缺少了交换过程。把mylist[j]=mylist[i];改成
int temp=mylist[j];
					mylist[j] = mylist[i];
					mylist[i]=temp;
后应该没问题了。
对,但是它为什么可以排序??他输出的应该是同一个值啊
lince 2016-03-22
  • 打赏
  • 举报
回复
引用 1 楼 u014105540 的回复:
你确定可以排序?
可以,试过了。但是我把if里的大于号改为小于号就不行了
lince 2016-03-22
  • 打赏
  • 举报
回复
真的可以排序,因为可以,才疑问。他输出的应该是同一个值啊
Broken3 2016-03-20
  • 打赏
  • 举报
回复
你这排序代码有点问题,只是把值覆盖了,缺少了交换过程。把mylist[j]=mylist[i];改成
int temp=mylist[j];
					mylist[j] = mylist[i];
					mylist[i]=temp;
后应该没问题了。
xiaobinfeng_ 2016-03-20
  • 打赏
  • 举报
回复
你确定可以排序?

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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