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

请问这个要如何理解,为什么是当arr[i]<arr[j]才要交换元素。能否画张图理解一下

请问这个要如何理解,为什么是当arr[i]<arr[j]才要交换元素。能否画张图理解一下

慕粉1463572084 2016-07-20 10:56:56
请问这个要如何理解,为什么是当arr[i]<arr[j]才要交换元素。能否画张图理解一下<script type="text/javascript"> var arr = [12, 2223, 125, 17, 8, 11, 10, 2, 3]; for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length;j++){ if(arr[i]<arr[j]){ var value=-1; value  = arr[i]; arr[i] = arr[j]; arr[j] = value; } } } console.log(arr.join());                                    </script>
查看完整描述

2 回答

?
MadMarical

TA贡献79条经验 获得超122个赞

你好。为什么要arr[i]<arr[j]才交换这是由你的目的决定的。你希望从小到大排序还是从大到小排序?

至于图,你这样的双重循环,外面一层从0到8固定。里面一层从0到8循环,依次比较即可。

比如i = 0;j = 0,1,2,3,4,5,6,7,8

i = 1;j = 0,1,2,3,4,5,6,7,8

这样进行比较,交换,最后得到结果。

查看完整回答
2 反对 回复 2016-07-20
?
上头

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

兄弟,你好,说点题外的,我觉得你可以参考一下一个经典就是 "冒泡排序法",从中可以学到的点都很多,还有可以学习一下数组的sort()方法。

好的,至于为什么 当arr[i]<arr[j]才要交换元素 ,这个是由你自己把握的,我相信如果你了解了我上面所说的,你的问题再也不是问题之外还能把数组玩得飞起。


查看完整回答
反对 回复 2016-07-20
  • 2 回答
  • 0 关注
  • 2411 浏览
慕课专栏
更多

添加回答

举报

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