JAVA単純なデータ構造とアルゴリズムの並べ替え、3-

二つの基本的な操作は、順序付けされ、比較および交換を挿入ソートに移動があります。

バブルソート:任意の二つの隣接する要素、もし小さい場合、スイッチの多数の前の数。

  配列の最後に最大数の各トリップトラバーサル、横断するN-1回の合計。

  あなたが交換要素の後に旅行を終えていない場合は、シーケンスが発注されています。

  ます。public voidバブルソート(){

    で、出int型。

    (;アウト> 0; = Array.lengthと-1アウトアウト - )は{

      {(++で;アウト<0 =で)のために

        IF(arrry [IN]>配列[1 + IN]){

          スワップ([IN]配列、[IN + 1]配列)。

        }

      }

    }

  }

バブルソートの効率:

  

 

 

   

 

 選択ソート:ソートする最小の要素から選択される第一の要素、シーケンスの開始時に保存されました。

      次いで、最小要素の残りの未分類要素から見て、次に、ソート配列の端部に配置されています。

      などなど。

  公共ボイドselectSort(){

    分、で、出int型。

    用(OUT = 0;アウト<Array.lengthと-1;アウト++){

      分=アウト。

      {(++で; <Array.lengthと1 + =アウト)のために

        {(<配列[分] [IN] arrry)場合

          分=中;

        }

      }

      スワップ(配列[OUT]、配列[分])。

    }

  }

 

 

 ソート効率を選択します。

  バブルソート選択ソートよりも速く、両方の比較の数は同じである:(N-1)N * / 2が、O(N)をソートするための交換の数の選択は、バブルソート未満です。

挿入ソート:各要素は、ソートされた配列上の正しい位置に分類されます。

    ローカル順序:ローカル順序要素間の順序であるが、これらの要素の最終位置が決定されていません。

    ソートされていない要素がその中に挿入されたときと、位置の変化がそのために発生。

  

  ます。public void insertSort(){

    で、出int型。

    用(OUT = 1;アウト<Array.lengthと;アウト++){

      [OUT] int型TEMP =配列;アウト要素の//タグ

      =アウト。

      (> 0 && [IN-1]配列> = TEMPに){シフト素子より大きい、開始位置マークから前方マーク要素を//ながら

        [IN-1]配列[IN] =配列。

        に - ;

      }

      = TEMP [IN]配列; //それが要素の背面よりも小さいマーカー要素に出す - 空席

    }

  }

  挿入ソートの効率:二倍の速泡立ちとして、選択よりも若干速いです。

  

 

 要約: 

    最も簡単なバブルソート、最悪の効率。

    

    3つの最も広く使用されているソートアルゴリズムの挿入ソート。ほとんどの場合、ときに小さいデータ量または実質的に注文し、挿入ソートのベストを。

       バブルソートは挿入ソートは安定ソートで、安定、不安定な選択ソートです。

       上記3つのアルゴリズムの時間計算量はO(N ^ 2)です。

    3つのアルゴリズムが注文を完了するために、「場所に」よりも多く、最初の配列が少し追加のメモリ空間を必要とすることに加えて、一時的にしかやり取りのデータ項目を保存するために、余分な変数を必要としています。

おすすめ

転載: www.cnblogs.com/lsh0908/p/11755484.html