zoukankan      html  css  js  c++  java
  • 选择排序精简理解

    原理:遍历数组,从第一个开始,将其与剩余的元素进行比较,记录最小的元素及其所在的位置,结束后,将其与应该放到的位置上的元素对调,直到完成排序。

    借用网上的动图直观的看下:

    思想:两个循环,外循环记录位置及进行最后的交换,内循环进行比较及确定最小的元素。

    上代码:

      /**
         * @param {Object} array    需要排序的数组
         */
        function selectSort(array){
            var len = array.length;        //数组的长度
            for(var i = 0; i < len;i++){
                var min = array[i];        //定义最小的数字
                var param;                //过度元素
                var index = i;            //最小的数字的位置
                for(var j = i+1;j < len;j++){
                    if(min > array[j]){        //碰到更小的记录位置,及其值
                        min = array[j];
                        index = j;
                    }
                }
                param = array[i];        //交换位置
                array[i] = min;
                array[index] = param;
            }
            return array;
        }
        
        var arr = [11,2,3,5,7,1,4,6,15,5,2,7,9,10,15,9,17,12];
        console.log("原数据:"+arr);
        console.log("排序后:"+selectSort(arr));

    力求精简,有错指出,谢谢。

  • 相关阅读:
    left join问题
    SQL索引
    数据库查询优化
    define and inline
    程序的内存分配
    __closure
    this指针
    java笔记
    Visual Studio Code(VSCODE)语言设置
    Excel 2010如何打开多个独立窗口?
  • 原文地址:https://www.cnblogs.com/bpjj/p/11288204.html
Copyright © 2011-2022 走看看