1、線形探索(1サイクル)O(N)
1件の // 線形検索 2 公共の int型の検索(int型ターゲット){ 3 // 反復 4は のために(int型 I = 0;私は<elements.length; I ++は){ 5 IF(要素[I] == ターゲット){ 6。 IF(要素[I] == ターゲット){ 7。 復帰I; 8 } 。9 } 10 } 11は、 // 指定された要素が見つかりません 12は、 戻り -1 、 13です }
図2に示すように、二分探索(サイクル条件ノートの端部は以上の始端である)O(LOGN)
1 公共 INT binarySearch(int型のターゲット){ 2 // 記録開始位置が 3。 INT 0 =始める; 4 // 記録終了位置 5。 int型エンドelements.length = 1 ; 6 // 中間位置を記録する 。7 INT MID =(開始エンド+)/ 2 ; 8 // 記録先 9 int型のインデックス= -1 ; 10 // バイナリ検索 。11 ながら(<開始端){ 12は // 中間要素が見つからないよう、この決意の要素である 13である IF(要素[MID] == ターゲット){ 14 、インデックス= MID; 15 BREAK ; 16 // 中間要素が探していない要素 。17 } 他{ 18である // 中間要素は、ターゲット要素の比が大きくないと判断する 。19 IF(要素【mIDを】> ターゲット){ 20は // 位置の中間位置に前端位置調整 21は 端mIDを= - 1。は、 22である // 中間要素は、ターゲット要素よりも小さい 23である } 他{ 24 // 開始位置に調整されます位置の中間位置の後 25 = mIDを+始める。1; 26 } 27 // 新たな中間位置取り外し 28 MID =(開始端+)/ 2 ; 29 } 30 } 31は、 リターン指数; 32 }