一.选择排序
原理
每一圈确定出一个 当前最小的元素 交换位置
已经比较出来的最小元素 不用再参与后面的循环
比如 第一圈 确定出来的 跟 第一位交换位置
第二圈 确定出来的 跟第二位交换位置
外圈负责 整个数组 比较的次数
内圈 负责 每个元素之间的比较
内圈比较时候的起始位置
j => 0 1 2 ...
j => 1 2 3 ...
所以内圈循环的起始位置 应该时 j = i + 1;
内圈的结束位置
由于 内圈循环时 每次都要对比到最后一个元素 所以 j<arr.length;
声明一个数组
var arr = [ ];
使用for循环 添加随机数
for(var i = 0;i < 10;i++){
arr[i] = Mathround(Math.random()*100);
}
console.log(arr);
排序
外圈控制 整个数组循环的次数
for(var i = 0;i <arr.length - 1;i++){
外圈每一次开始循环的时候 都将当前循环的第一个元素 先假设为最小的元素
然后 拿着这个元素 跟内圈循环的其他元素 作对比
如果这个元素 比 min 更小
那这个元素 就是 新的min
var min = i;
内圈控制 元素之间的对比
for(var j = i + 1;j < arr.length;i++){
if(arr[j]<arr[min]{
min=j;
}
}
因为 一整圈比完之后 才会换位置 所以在 外层for循环换位置
将确定出来的min跟 当前参与循环的 第一个元素 换位置
var num = arr[i];
arr[i]=arr[min];
arr[min]=num;
}
console.log(arr);
网友评论