1.バブルソート
原理:
格納されたデータを比較する二つの隣接するユニット。最初のデータセルが大きい場合、それは、2つの隣接するユニット交換データに格納されます。
プロセス:
初期比較部、最初のサイクル、最大値、最終アレイ内のすべてのセルを選択から始め、
各サイクルの後、現在のサイクルの最大値を比較する、参加の現在最後に、比較部と、
以前に選出された比較部は、相対的に低い参加しません。
最適化:
(1)最後のユニットは比較に関与最後から二番目のユニットを通過したので、最後のユニットは、単一のサイクルに参加しないでしょう。
(2)前回の最大値を比較し、次の比較はもはや後関与しません
再循環されない(3)n個の長いサイクル時間n-1個の比較ができ、最終的に、比較ユニット。
コア:
データ交換のストレージは、隣接する二つの単位は、データサイズ、最初のデータ交換ユニット2のストレージユニットに大きな値とを比較します。
VAR ARR = [30、33、13、2、1]; {(J ++; - - 1)1 J <=(arr.length J = 0)のための ための(VAR I = 0; I <=(arr.length - 1) - 1 - J; I ++){ (ARR場合[I]> ARR [I + 1]){ VARの中間= 0。 中央= [i]はARR。 ARR [I] = ARR [I + 1]。 ARR [I + 1] =中間、 } } } にconsole.log(ARR)。
2. [ソート
工程:
(1)デフォルトの位置のサイクルの開始位置を定義するためには、初期位置の位置から開始サイクル最小値です。
値は、インデックスのストレージ位置上の位置に小さい値を超える場合(2)、インデックス値はこの場所に格納されています。
値は二つの位置で交換されていない場合、インデックスは、インデックスのサイクル開始位置に格納されているか否かの比較(3)の後に、最小のサイクルが存在する、サイクルの開始位置に配置されます。
(4)再順序付けを完了するために複数のサイクルを行います。
コア:
指標最小値は、開始位置のその後交換価値を見出しています。
最適化:
値(1)比較は、マークに関与していない前に
比較限り、(2)2つのN単位、N-1回
ARR = VAR [5 ,. 4 ,. 3,2 ,. 1]; //アウターループ、既に最大従ってサイクルに関与していない最後の残数、サイクル数-1 (J = 0 ; J <=(arr.length - 1) - 1; J ++){ //我々が位置をデフォルト最小で開始 するvar分= J; //デフォルトの開始位置は、ちょうど比較から、最小値である場合に次のそれを比較開始 するために(私はJ +を= 1; I <= arr.length - 1; I ++ {。) //メモリー・アレイ添字分最小値 IF(ARR [分]> ARR [I]){ 分私は=; } } //配列インデックスは、初期配列の添字でない場合 、対応する分添字インデックスJに格納されたインデックス値に対応する//交換指標値 IFを(J =分!){ varは中央= 0。 中央=は[j]をARR。 ARR [J] = ARR [分]。 ARR [分] =中間、 } } にconsole.log(ARR)。
要約:
(高効率):ソートを選択
順の問題場合は、単に操作の割り当てインデックスを行います。サイクルが完了するように、判断はデータ交換を行うために、行われます。
バブルソート:
問題の発生毎の順序は、データ交換の操作を実行する必要があります。実行頻度は、選択ソートデータ交換よりも高い、データ交換動作も、比較的面倒な実行時間と低効率です。