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);
穩定性 :不穩定

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