1。バブルソート
アルゴリズムのアイデア:ソートする配列を通過し、毎回2つの隣接する要素を比較します。配置命令が間違っている場合は、位置を交換してください。ソートする旅行の後、最大の要素が配列の端まで浮かびます。ソートが完了するまで繰り返します。
サンプルデモンストレーション:
アルゴリズムの実装:
for(int i = 0; i <array.length-1; i ++){//(int j = 0; j <array.length-i-1; j ++){//交換する必要がある場合(array [j]> array [j+1]){int temp = array [j]; array [j] = array [j+1];配列[j+1] = temp; }}}アルゴリズム時間の複雑さ:o(n2)外側ループをn-1回比較する必要があり、内側のループをn回比較する必要があります。
2。ソートを選択します
アルゴリズムのアイデア:アレイの最小要素を再選択して、ソートされ、配列の最初の位置にある要素と交換します。次に、残りの要素から最小の要素を選択し、2番目の位置の要素と交換します。最小の要素がその位置の要素である場合、それを自分と交換し、ソートが完了するまで交換してください。
サンプルデモンストレーション:
アルゴリズムの実装:
for(int i = 0; i <array.length; i ++){int min = i; for(int j = i+1; j <array.length; j ++){if(array [j] <array [min]){min = j; }} int temp = array [min];配列[min] = array [i];配列[i] = temp; }時間の複雑さ:o(n2)には、n2/2の比較とn交換が必要です
3.ソートを挿入します
アルゴリズムのアイデア:配列の2番目の要素からトラバースを開始し、要素を前の要素と比較します。要素が前の要素よりも小さい場合は、要素を一時変数に保存し、前の要素を順番に後方に移動してから、適切な位置に挿入します。各ソートが完了した後、インデックスの左側の要素を注文する必要がありますが、移動することもできます。反転が少ないアレイの場合、アルゴリズムがより効率的です。
注:反転:5 3 6 2逆項は5-3 5-2 3-2 6-2です
サンプルデモンストレーション:
アルゴリズムの実装:
for(int i = 1; i <array.length; i ++){for(int j = i; j> 0 && array [j] <array [j-1]; j-){int temp = array [j]; array [j] = array [j-1];配列[j-1] = temp; }}時間の複雑さ:O(N2)最悪のケースN2/2比較、N2/2交換ベストケースN-1比較、0交換
上記の3つの単純なソートアルゴリズム(Javaを使用して実装)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。