アルゴリズムのI.はじめに
配列array [1 ... n]は、ああ、インデックスが開始されると、配列をソート[0]見張ります。挿入位置を見つけるたびに、単位素子(休暇室を挿入する要素)の順序付けられた全「翻訳」の現在の要素よりも大きくても小さくなり、要素が一時的に挿入することができることが歩哨ガードとして働く「認めました」。
センティネルの役割:
コンテンツの記録配列[I]のシフトに失われないように、ルックアップ①(挿入位置)サイクルに入る前に、それは、[i]は、配列のコピーを保存します。
範囲外のインデックス変数jの「監視」のループを探す:②その主な役割は、することです。一度範囲外(すなわち、J = 0)彼自身を比較することができる[0]。アレイは、周期決意条件が満たされないので、そうそれによってサイクルの各時間を避け、閉鎖サイクルjは範囲外であるかどうかを検出する必要が見つける(すなわち省略サイクル判定条件「J> 0」)--------------------------時間単位を節約できます。
注意:
①実際には、すべての追加のノード(要素)の境界条件はセンチネルと呼ぶことができる簡単にするために導入されます。
[例]単一リンクされたリストの最初のノードが実際センチネルであります
②試験条件は、サイクルタイムを見つけることセンチネルの導入はかなりの時間を節約する大きなファイルのレコード番号のためので、約半分に減少しました。同様の並べ替えのために非常に高い周波数のこのアルゴリズムは、可能な限りその実行時間を削減します。上記のアルゴリズムは、歩哨綿毛とみなすことはできませんが、深くこのスキルを理解し、マスターする必要があります。
二つの.javaアルゴリズム
パブリック クラスInsertSort { 公共 ボイドソート(int型[] NUMSを){ int型 TEMP = 0 ; のため(int型 ; <nums.length; A = 2 ++ ){ NUMSが[ 0] = NUMS [A]と、 TEMP = 1-A ; 一方(NUMS [TEMP] <NUMS [0 ]){//すなわち、本明細書サイクル判定条件TEMP省略センチネルの役割>このように単位時間を節約し、0。 NUMS [TEMP + +1] = NUMS [TEMP]; TEMP = TEMP -1 ; } NUMS [TEMP + +1]はNUMSを= [0]; } } }