• 选择排序算法和理解


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
    var arr = [1, 41, 12, 2, 5]

    //选择排序
    //a = 1, b = 41, c = 12, d = 2, e = 5
    //a,b,c,d,e 五人相遇了,要站一对,从高到矮排列
    //1、2、3、4、5
    //其中1号位a说话了:我最矮你们谁有意见
    //然后b,c,d,e不信依次和a比较,最后结果是a最矮,站最后
    // => a, b, c, d, e

    //然后2号位b说话了我是除了a最矮的,谁有意见
    //然后c,d,e不信,依次和b比较
    //刚和c一比 c就叫了我比你矮你不是除了a最矮的我才是,说罢
    //就说我才是除a最矮的,谁有意见
    //然后d,e不信,依次和c比较
    //刚个d一比,d就叫了,你不是除a最矮的,我才是,说罢
    //就说我才是除a最矮的,谁有意见
    //然后e不信,和e比较
    //和e比较,e承认,d比他矮,最后d是除了a之外最矮的,站a前面
    // => a, d, b, c, e


    //然后3号位b说话了,我是除了a,b外最矮的,谁有意见
    //然后c,e不信,依次和b比较
    //刚和c一比 c就叫了我比你矮你不是除了a,b最矮的我才是,说罢
    //就说我才是除a,b最矮的,谁有意见
    //然后e不信,e和c比较
    //刚个e一比,e就叫了,你不是除a,d最矮的,我才是
    //最后e是除a,b最矮的站a,b前面
    // => a, d, e, b, c


    //然后4号位b说话了,我是除了a,b,c外最矮的,谁有意见
    //然后c不信,和b比较
    //刚和c一比 c就叫了我比你矮你不是除了a,b,e最矮的我才是
    //最后c是除a,b,e外最矮的,站a,b,e前面
    // => a, d, e, c, b


    //最后5号位的b说话了:没人和我比了,唉!我是最高的,说罢站a, b, e, c前面
    // => a, d, e, c, b



    function selectionSort(arr){
    var len = arr.length,min;
    for (i=0; i < len; i++){
    // 出来出声说我是最矮的那个
    min = i;
    // 比较其他人是否比他矮
    for (j=i+1; j < len; j++){
    if (arr[j] < arr[min]){ min = j; }
    }
    // 如果其他人比它矮,换成那个矮的出声
    if (i != min){
    var temp = arr[i];
    arr[i] = arr[min];
    arr[min] = temp;
    }
    } return arr;
    //返回一个有矮到高的列(数组)
    }

    console.log(selectionSort(arr));
    </script>
    </head>
    <body>
    </body>
    </html>

    //结果:[1, 2, 5, 12, 41]

  • 相关阅读:
    private知识笔记
    finalize知识笔记
    java实现队列的练习
    测试知识笔记(2)
    static和final知识笔记
    测试知识笔记(1)
    overloading知识笔记
    windows Copssh + git 搭建git服务器
    Java Servlet规范
    身份证验证JS代码
  • 原文地址:https://www.cnblogs.com/111lll/p/7435632.html
Copyright © 2020-2023  润新知