请问这个要如何理解,为什么是当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
这样进行比较,交换,最后得到结果。
上头
TA贡献7条经验 获得超5个赞
兄弟,你好,说点题外的,我觉得你可以参考一下一个经典就是 "冒泡排序法",从中可以学到的点都很多,还有可以学习一下数组的sort()方法。
好的,至于为什么 当arr[i]<arr[j]才要交换元素 ,这个是由你自己把握的,我相信如果你了解了我上面所说的,你的问题再也不是问题之外还能把数组玩得飞起。
添加回答
举报
0/150
提交
取消