この記事の例は、Javaソートアルゴリズムの要約の選択を示しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
ソートを選択することの基本的な操作は、ソートされるデータ要素から選択された最小(または最大)要素の1つであり、順序はソートされるデータ要素までシーケンスの数の最後にあります。アルゴリズムは不安定であり、O(1)の余分なスペース、比較時間の複雑さはO(n^2)、交換の時間の複雑さはO(n)であり、適応性はありません。ほとんどの場合は推奨されません。交換の数を減らしたい場合にのみ。
基本的なアイデア
n-recordedファイルのファイルを直接選択することは、N-1旅行から直接選択して、整然とした結果を得ることができます。
①初期状態:無秩序な領域はr [1..n]であり、秩序ある領域は空です。
cirst最初の並べ替えは、乱れた領域r [1..n]でソートされ、最小レコードr [k]を選択し、乱れた領域の最初のレコードr [1]と交換します。 2..n]は、記録数と新しい無秩序な領域の新しい秩序領域に変更され、1の記録が数多く、記録の数が減少しました。
ニンポ
③ソートII
Iの種類の開始時に、現在の順序付けられた領域と障害領域はR [1..i-1]およびR(1≤i≤n-1)です。この種は、現在の無秩序な領域から最小レコードr [k]を選択し、r [1..i]とrが記録の数に分離されます数の領域と多くの記録がある新しい無秩序な領域が1減少しました。
このようにして、N-Recordedファイルのファイルを直接選択することは、N-1 TRIPSによって直接選択して、整然とした結果を得ることができます。
コード実装
public class test {public static int [] a = {10,32,1,9,5,7,12,0,4,3}; {int i; // cycling count in index = a.length.out.print(sort: ");(i = 0; i </+)system.out。 printf( "%3s"、aout.println( ""); ; i ++)out.printf(a); ; //最小値変数の変数(i = 0; i ++){minvalue = 32767 (j = i; j <in <index; j ++){a [j] <minvalue)//最小値を見つけるforの最小値の値{minvalue = a [j]; / straige minimul min = j;} temp = a; k(k(k = 0; k <index; k ++)system.out.printf( "%3s"、a [k]); system.out.println( "");}}}}}}}}}
泡立つソーティング方法のように、外層サイクルのサイクルは依然としてn-1回を実行する必要があり、その効率は依然として貧弱です。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。