zoukankan      html  css  js  c++  java
  • js排序算法03——选择排序

    选排序的思路是首先从要排序的数组中选择最小的和目前的第一位交换位置,然后从剩下的数中选择最小的和第二个位置的数交换位置,再从剩下的数中选择最小的和第三个位置的数交换位置,以此类推,实现代码如下:

    function selectSort(arr){
        if(!Array.isArray(arr)){
            return false;          //类型判断
        }    
        else{    
            var flag;
            for(var i=0;i<arr.length;i++){
                var minIndex = i;           //假设最小数的索引
                for (var j = i; j < arr.length; j++) {
                    if(arr[j]<arr[minIndex]){
                        minIndex = j;     //找到更小的数,更新索引            
                    }
                }    
                if(arr[minIndex]<arr[i]){
                    flag = arr[i];
                    arr[i] = arr[minIndex];
                    arr[minIndex] = flag;
                }        
            }
            return arr;
        }
    }

    算法分析:无论最好或最坏情况,该算法的时间复杂度总是O(n2),因为每次要走第二个for循环找最小的数,感觉有点坑啊。

  • 相关阅读:
    RQNOJ 1 明明的随机数
    poj1284
    poj1061
    51nod1305
    51nod 1344
    poj2240
    poj1860
    使用SwitchToThisWindow时不切换问题
    c#拷贝整个文件夹到指定文件夹下(非递归)
    IniHelper
  • 原文地址:https://www.cnblogs.com/renbo/p/8279907.html
Copyright © 2011-2022 走看看