JS实现十大排序算法——选择排序

思路:

每次遍历找到一个所有未排序项的最大或最小值,第一次循环将其与第一位交换位置,第二次将其与第二位交换位置,第三次将其与第三位交换位置,以此类推,最后所有项都会在相应位置上。

具体实现:

function selectSort(array){
    let indexMax;
    for(let i=0;i<array.length-1;i++){
        indexMax = i;//设置记录最大值下标的变量,每次遍历先赋成i
        for(let j=i;j<array.length;j++){  //筛选i后最大值,将其下标保存到indexMax中
            if(array[j]>array[indexMax]){
                indexMax = j;
            }
        }
        if(i!==indexMax){
            [array[i],array[indexMax]] = [array[indexMax],array[i]];//将寻找到的最大值与array[i]交换位置
        }
    }
    return array;
}

特性:

时间复杂度:o(n2);
空间复杂度:o(1);
稳定性 :不稳定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章