アルゴリズム - 検索

リニア検索

順次リスト内の要素をチェック終了する開始から、時間計算量はO(N)であります

DEF (ARR、N-、X)から検索
  
    するための I 範囲(0、N-): 
         IF(ARR [I] == X): 
             リターンI; 
     返す -1 ; 
  
アレイのARRの文字D見つける 
ARRを= [ ' A ' ' B ' ' C ' ' D ' ' E ' ]; 
X = ' D ' ; 
N- = LEN(ARR); 
結果 = 検索(X、N-、ARR) 
IF(結果== -1 ): 
     印刷要素ではない配列のそれ以外印刷配列の要素のインデックスである、結果);

 

バイナリ検索

1から注文したリストの要素があるかどうか検索アルゴリズムを。中間要素は、要素がちょうど探している場合、アレイ素子の中央からの検索処理は、検索処理を終了する。特定の要素は、アレイ内の中間要素が大きいか又は中間要素ルックアップの半分よりも小さいより大きいまたは小さい場合、及びスタートのように真ん中の要素を比較し始めます。配列は、いくつかの段階で空の場合、それが見つかりません表しています。各比較検索が半分に減少するように、この検索アルゴリズム。 

#はノーリターン-1が存在しない場合、ARR xのインデックスを返し
DEF binarySearch(ARR、Lは、R、X): 
  
    、実質的に分析
    IF R&LT> = L:
  
        MID = INT(Lの+(R&LT - L)/ 2 
  
        #の要素は、全体の良好な中間位置
        IF ARR [mIDを] == X: 
             戻り中間
          
        #1 要素の中間位置よりも少ない要素を、要素がちょうど左比較する必要
        ELIFの ARRを[mIDを]> X: 
             戻り binarySearch(ARR、L、ミッド。1 、X) 
  
        要素は、ちょうど再び、比較素子要素の中間位置よりも大きい
        戻り binarySearch(ARR ,. 1 + mIDを、R&LT、X)
  
    #の不在を
        戻り -1 テストアレイ 
= 2 ,. 3 ,. 4、10、40 ARR ] 
X = 10 関数呼び出し 
結果= binarySearch(ARR、0、LEN(ARR)-1 、X)IF!結果= -1 印刷配列の要素のインデックスはD%で%の結果)
 印刷配列の要素ではありません
  

  

  

 

おすすめ

転載: www.cnblogs.com/hf8051/p/11459295.html