为了账号安全,请及时绑定邮箱和手机立即绑定

这个简单的java选择排序帮我讲讲两个for是如何排序的么?

这个简单的java选择排序帮我讲讲两个for是如何排序的么?

Key4042162 2017-03-27 22:42:00
class Zuoye11{ public static void main(String args[]){ int[] arr={2,30,8,63,21}; int x; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr.length;j++){ if(arr[i]>arr[j]){ x=arr[i]; arr[i]=arr[j]; arr[j]=x; } } } for(int t=0;t<arr.length;t++){ System.out.println(arr[t]+""); } }}正确答案是从大到小 我看起来怎么是从小到大排序的呢……
查看完整描述

4 回答

已采纳
?
buzhaodi

TA贡献5条经验 获得超1个赞

从大到小的。。你仔细看看 这个算法效率很低。。。 如果数量过大 建议使用归并或者快速排序 

你把数组带进去 你就知道了 算到第二组当I等于30的时候 也就是外层循环到第二轮的时候  内层循环j取0的时候  是不是 30和2互换位置? 那是不是大的跑到前面去了?

查看完整回答
反对 回复 2017-03-28
?
ziom

TA贡献948条经验 获得超1109个赞

断点调试

查看完整回答
1 反对 回复 2017-03-28
?
__YXQ__

TA贡献48条经验 获得超15个赞

选择排序的循环不应该是这样吗?

for(int i = 0;i<arr.length-1;i++){
    for(int j = i + 1;j<arr.length;j++){
        ...
    }
}


查看完整回答
反对 回复 2017-03-28
?
00小伙

TA贡献86条经验 获得超30个赞

可以看看冒泡排序案例

查看完整回答
反对 回复 2017-03-28
  • 4 回答
  • 0 关注
  • 1841 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信