【面接編】JSの一般的な並べ替えアルゴリズム


泡の並べ替え:隣の2つのデータの大きさを比較すると、前の数字が後の数より大きい場合、2つの位置を交換します.二回のfor巡回巡回が必要です.
  • 長所:簡単
  • 欠点:時間の複雑さが高く、運行効率が低下しています.
    function sortArr(arr){
      var temp;
      for(var i=0;i    arr[j]){
                   times++;
                   temp = arr[i];
                   arr[i] = arr[j];
                   arr[j] = temp;    
                }
                console.log(" "+(++times)+"    :"+arr);  
            }
        }
        return arr;
    }
    var times = 0;
    sortArr([2,5,4,1,7,3,8,6,9,0]);
    
    out :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    クイックソート:まず基準点(一般的な配列の中部)を見つけます.配列は2つの部分に分けられています.順次基準点データと比較して、それより小さいものを左に置いて、それより大きいものを右に置いて、左右はそれぞれ1つの空行列で比較したデータを保存します.最後に上記の操作を実行して、配列の長さを知ることができます.
  • 長所:快速常用
  • 欠点:2つの配列を追加的に説明する必要があり、メモリ空間資源を浪費しました.
    var times = 0;
    var quickSort = function(arr){
        if(arr.length<=1){//      
            return arr;
        }
        var midIndex = Math.floor(arr.length/2);//    
        var midIndexVal = arr.splice(midIndex,1);//      
        var left = [];
        var right = [];
        for(var i=0;i