选择排序

原理

每一圈确定出一个当前最小的元素,然后跟最前面的元素交换位置

已经比较出来的最小元素,不用在参与后面的循环

比如第一圈确定出来的跟第一个交换位置

第二圈确定出来的跟第二个交换位置

外圈负责整个数组比较的次数

内圈负责每个元素之间的比较

内圈比较时候的起始位置

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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容