美文网首页程序员
js算法之选择排序

js算法之选择排序

作者: _州舟_ | 来源:发表于2019-01-17 20:44 被阅读0次

    选择排序:

         两个for循环嵌套,外循环记录每次循环开始的位置,内循环查找本次循环内的最小值;

      实质是每循环一次将查到的最小值放在每次循环的最初开始的位置;

    代码:

    var arr=[49,38,65,97,76,13,27,49];

    function selectionSort(arr) {

    var len = arr.length;

    var minIndex,temp;

    for (var i =0;i

            minIndex =i;

    for (var j =i +1;j

                if (arr[j] < arr[minIndex]) {//寻找最小的数

                    minIndex =j;//将最小数的索引保存

                }

    }

    console.log(arr);

    if(minIndex !=i) {

    temp = arr[i];

    arr[i] = arr[minIndex];

    arr[minIndex] =temp;

    }

    }

    return arr;

    }

    console.log(selectionSort(arr));

    循环开始第一次:i等于数组中第0个数,进行循环,找到最小的数,进行置换

    初始值

    i=0   这时候49开始循环判断,找到最小的数13进行置换 得到

    i=1 这时候38开始向后遍历,找到最小的数27进行置换得到

    i=2 时 65开始向后遍历,找到最小值38进行替换

    i=3时 97开始向后遍历,找到最小值49进行替换

    i=4  76开始向后遍历,找到最小值49进行替换

    i=5 65开始向后遍历,没有找到最小值,所以56便为最小值

    i=6  97开始向后遍历,找到最小值76进行替换

    最后得到数组 [13,27,38,49,49,65,76,97];

    相关文章

      网友评论

        本文标题:js算法之选择排序

        本文链接:https://www.haomeiwen.com/subject/mjdwdqtx.html