原理
每一圈确定出一个当前最小的元素,然后跟最前面的元素交换位置
已经比较出来的最小元素,不用在参与后面的循环
比如第一圈确定出来的跟第一个交换位置
第二圈确定出来的跟第二个交换位置
外圈负责整个数组比较的次数
内圈负责每个元素之间的比较
内圈比较时候的起始位置
i = 0 1 2....
j = 0 1 2....
所以内圈循环的起始位置应该是 j = i + 1
内圈结束位置
由于内圈循环时,每次都要对比到最后一个元素,所以j < arr.length
生成一个长度10(0~100)的随机数组
生成一个空数组
var arr = []
//随机数组
for(i = 0;i < 10;i++){
arr[i] = Math.round(Math.random() * 100);
}
//打印到控制台
console.log(arr)
//外圈控制整个数组的次数
for(var = 0;i < arr,length - 1;i++){
//外圈每一次开始循环的时候,都将当前循环的第一个元素先假设为最小的元素
//然后拿着这个元素跟内圈的其他元素做对比
//如果有元素比min更小
//那么这个元素就是新的min
var min = i;
//内圈控制元素之间的对比
for(var j = i;j < arr.length;j++){
if(arr[j] = arr[min]){
min = j;
}
}
//因为一整圈比完才会换位置,所以在外层for循环换位置
//将确定出来的min跟当前参与循环的第一个元素换位置
var num = arr[i];
arr[i] = arr[min];
arr[min] = num;
}
//打印到控制台
console.log(arr);