JavaScriptの配列のソートの概要

ディレクトリ

  1. ソート配列のソート機能
  2. バブルソート
  3. 選択ソート
  4. 挿入ソート
  5. クイックソート

 

ソート機能をソート1、配列

 アレイを使用したソート方法を。

 ARR = [2,8、5、0、5、2、6、7、2 ]
arr.sort((A、B) => {
     返す - B
})
console.log(ARR)// 結果:[0、2、2、2、5、5、6、7、8]

 

2、バブルソート

アレイの2つの隣接する要素を比較し、アレイの端に一対比較による動きの大きい(小さい)数(開始)、再度、外層の最大値(最小値)の数を決定し、内部ループを実行します開始(終了)のアレイ(開始)の端をループ。

VaRの ARR = [2,8、5、0、5、2、6、7、2 ]
 のためのVAR i = 0; I <arr.length; iは++ ){
     VARの J = 0; J <arr.length -1; J ++ ){
         場合(ARR [J]> ARR [J + 1 ]){
            聞かせてニュース =のARR [J]
            ARR [J] =のARR [J + 1 ]
            ARR [J 1] = ニュース
        }
    }
}
console.log(ARR)// 結果:[0、2、2、2、5、5、6、7、8]

 

並べ替えを選択します

まず、元の配列、および前面の要素の配列から最小の要素を見つけ、その要素の残りの部分から最小の要素、前背面の最小の要素を探し、minIndexは常に最小の位置を保持していますインクリメント私とインデックス、ソートが完了するまでは、配列の長さが短く横断。

VaRの ARR = [2,8、5、0、5、2、6、7、2 ]
 のためのVAR i = 0; I <arr.length; I ++ ){
     VARの minIndex = I。
    VARの J = I + 1、J <arr.length; J ++ ){
         場合(ARR [J] < ARR [minIndex]){
            minIndex = S
        }
    }
    もし(!minIndex = I){
         VARのニュース=のARR [i]は、
        ARR [I] =のARR [minIndex]
        ARR [minIndex] = ニュース
    }
}
console.log(ARR)// 結果:[0、2、2、2、5、5、6、7、8]

 

4、挿入ソート

 

 ARR = [2,8、5、0、5、2、6、7、2 ]

//は、0番目の要素は、列の順序付けられた数であり、最初のものが乱れた後シーケンスである、と仮定
// それは乱数列要素が順序付けられたシーケンスに挿入されるの要素から開始
するためのVAR I 1 =; I <arr.length; iは++ ){
     // 昇順
    IF [1-I(ARR [I] <ARRの]){
         // 乱数列はi番目の要素として挿入されている削除
        するvar =ガードARR [ I];
         // 順序付けられたシーケンス内の最後の位置、および注文シーケンスの位置の拡大覚え
        のvar Jを= I - 1。;
        ARR [I] =のARR [J]。

        // サイズよりも、インサート要素の位置を見つける
        一方(J> = 0 &&ガード< ARR [J])を{
            ARR [J + 1] =のARR [J]。
            J - ;
        }

        // 挿入 
        ARR [J + 1] = ガード。
    }
}

console.log(ARR)// 結果:[0、2、2、2、5、5、6、7、8]

 

5、クイックソート

 再帰に関連するクイックソート、問題は、配列の長さの最大サイズまで、再帰されている、各アレイは、2つの小さな配列として小さな続けることができ、二つの小さなアレイを有するスケジューリング問題として配列をソートします2。

 ARR = [2,8、5、0、5、2、6、7、2 ]

機能クイック(ARR){  
     IF(arr.lengthが<= 1){ // 配列が一つだけ番号を持っている場合、直接戻り、   
        戻りARR。  
    }  
    VaRの NUM = Math.floor(arr.length / 2)がフローティングされている場合//は、中間値の指数を見つけ、その後、切り捨て  
     VAR newValueに= arr.splice(NUM ,. 1); //は中央番号を見つけます値   
    VARの左= []、右= [];  
     のためのVARの I = 0; I <arr.length; I ++ ){  
         IF(ARR [I] < newValueに){  
            left.push(ARR [I]); // 基準点の数は、左アレイの左側に渡す   
        } {  
            right.push(ARR [I]); // 点の数が基準配列の右側の右に渡します   
        }  
    }  
    戻りクイックソート(左).concat(newValueに、クイックソート(右)); // 再帰的に繰り返さ比較   
}  
    
console.log(クイックソート(ARR))// 結果:[0、2、2、2、5、5、6、7、8]

 


 参照

おすすめ

転載: www.cnblogs.com/Nightsky-Dec/p/11415913.html