猿问

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

请问这个要如何理解,为什么是当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>

慕粉1463572084
浏览 2413回答 2
2回答

MadMarical

你好。为什么要arr[i]<arr[j]才交换这是由你的目的决定的。你希望从小到大排序还是从大到小排序?至于图,你这样的双重循环,外面一层从0到8固定。里面一层从0到8循环,依次比较即可。比如i = 0;j = 0,1,2,3,4,5,6,7,8i = 1;j = 0,1,2,3,4,5,6,7,8这样进行比较,交换,最后得到结果。

上头

兄弟,你好,说点题外的,我觉得你可以参考一下一个经典就是 "冒泡排序法",从中可以学到的点都很多,还有可以学习一下数组的sort()方法。好的,至于为什么 当arr[i]<arr[j]才要交换元素 ,这个是由你自己把握的,我相信如果你了解了我上面所说的,你的问题再也不是问题之外还能把数组玩得飞起。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答