JavaScript算法---排序(选择排序)【2】

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_28004379/article/details/89163560

选择排序是一种原地址比较排序的算法。

原理如下图:找到数据结构中最小值然后将其放置在第一位,然后找到第二小的值放到第二位,以此类推。

代码:

//快速排序
    var selectionSort = function(array) {
        debugger;
        var length = array.length,indexMin;
        for(var i = 0; i < length-1; i++){
            indexMin = i;
            for(j = i; j < length; j++){
                if(array[indexMin]>array[j]){
                    indexMin=j
                }
            }
            if(i != indexMin){
                exchange(array,i,indexMin)
            }
        }
        console.log(array)
    }
    //比较元素交换位置
    var exchange = function(array,index1,index2) {
        var aux =array[index1];
        array[index1] = array[index2];
        array[index2] = aux
    }
    selectionSort([4,2,56,7,3,11,8]);

选择排序和冒泡排序一样,会包含两个循环导致二次方的复杂度。

猜你喜欢

转载自blog.csdn.net/qq_28004379/article/details/89163560