选择排序是依次找到无序部分的最值,将其插入到有序部分的末尾或者开头。
下面是可以直接运行的js选择排序代码:
<script> //选择排序
var arr=[2,4,7,5,6,3,8,1,9,0]; //声明数组并赋值
for(var i=0;i<arr.length;i++){ //实现arr[i]之前的部分有序
var minIndex=i; //初始化本轮比较的最小值
for(var j=i;j<arr.length;j++){ //本轮要比较的次数
//var minIndex=i; //失败
if(arr[j]<arr[minIndex]) //得到本轮比较的最小值
minIndex=j;
}
[arr[i],arr[minIndex]]=[arr[minIndex],arr[i]];
//使用es6解构赋值交换元素,将最小值放在有序部分的末端
}
console.log(arr); //直接输出数组,括号内为数组长度
</script>
上述代码第四行var minIndex=i;移到第六行的位置不能实现正常排序,友友们知道为什么吗?