js排序算法03——选择排序

Posted 鲁小肃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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循环找最小的数,感觉有点坑啊。

以上是关于js排序算法03——选择排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法03--选择排序

冒泡排序算法和简单选择排序算法的js实现

JS数据结构与算法——选择排序(把小的数字依次往前放)

JS数据结构与算法——选择排序(把小的数字依次往前放)

JS数据结构与算法——选择排序(把小的数字依次往前放)

JavaScript算法(冒泡排序选择排序与插入排序)