挿入ソートアルゴリズムのJavaベースの実装

ブリーフ

説明挿入ソートアルゴリズム(挿入ソートは)簡単なソートアルゴリズムです。これは、ソートされていないデータのために、後ろから前にソートされた順序でスキャンを順序付けられたシーケンスを構築することにより動作し、対応する挿入位置を見つけます。挿入ソートの実現では、ソート一般に、したがってプロセスからの順方向走査で(すなわち、唯一の余分なスペースをO(1)のようなものを使用する必要がある)インプレース用い、繰り返し並べ替え要素の必要性は徐々に後方に位置を移動します、最新の素子を提供する空間に挿入します。

マップのプレゼンテーションを移動します

上記の内容ことを容易に理解することができ、図に示して以下に移動参照。

(基準から図の可動におけるアルゴリズムは、下で詳述を参照してください)

コードの実装

1  / * 
2  *挿入ソート
 。3  * @paramのアレイ
 4。 * @return 
5。  * / 
6。 パブリック 静的 INT []挿入ソート(INT []配列){
 7。     int型のLEN;
 8      // アレイベースケースを直接戻すことができる
9      IF(配列== NULL。||(= LENことArray.lengthと)== == 0 || LEN 1 {)
 10          リターンアレイ;
 11      }
 12が     INT 現在、
 13である     ためINT I = 0; I <LEN - 1。 I ++){
 14          // 第二の数から出発し、ソートのデフォルト数
15          現在のアレイは= [I + 1。];
 16          // 前下添字番号
17。         INT preIdx = I;
 18である 
19。         // 現在の取得します前回の比較のシーケンス番号の前に一つずつ、ソート
 20          //を現在のデータは、比較より大きい場合、プットの数は一歩後退
21は         、一方(preIdx> = 0 &&現在の< {配列[preIdx])
 22が              アレイ[preIdx + 1] = 配列[preIdx];
 23である              preIdx-- ;
 24          }
 25          // 説明の場所を見つけるために、whileループ
26は、          配列[。preIdx + 1] = 現在;
27      }
 28      リターンアレイ;
29 }

アルゴリズム分析

最良の場合:T(N)= O(N)   最悪の場合:(N-T(N)= O 2    平均:T(N)= O(N 2

参考資料

1 HTTPS://www.cnblogs.com/guoyaohua/p/8600214.html

おすすめ

転載: www.cnblogs.com/captainad/p/10957006.html