二つの基本的な操作は、順序付けされ、比較および交換を。挿入ソートに移動があります。
バブルソート:任意の二つの隣接する要素、もし小さい場合、スイッチの多数の前の数。
配列の最後に最大数の各トリップトラバーサル、横断する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つのアルゴリズムが注文を完了するために、「場所に」よりも多く、最初の配列が少し追加のメモリ空間を必要とすることに加えて、一時的にしかやり取りのデータ項目を保存するために、余分な変数を必要としています。