C ++バイナリ検索アルゴリズム

#include <iostream>
 using  namespace std; 

// バイナリ検索メソッド、配列の要素を検索し、位置のインデックスを返します
 // 順序付き配列でなければなりません
int select_arr(int arr []、int len 、int arr_value)
{ 
    while1 
    { 
        int left = 0 ;   // 配列の左添え字
        int right = len- 1 ; // 配列の右添え字
        while(left <= right)   
        { 
            int mid =( left + right)/ 2 ;   // 中央のインデックスを定義
            int mid_value = arr [mid];   // 中間値の参照値を定義する
            if(mid_value == arr_value)// 参照値が
検索する   値と正確に等しい場合、自動的に目的の場所に戻る            {
                 return mid; 
            } 
            // if if参照値が検索対象の値よりも大きく、値が左半分にあることを示し、新しい検索範囲は中央値-1桁、つまり中央値1である
            else  if(mid_value> arr_value)
            { 
                right = mid- 1 ; 
            } 
            // 参照値の場合検索する値よりも小さく、値が右半分にあることを示します。新しい検索範囲は、中央の数値+1桁、つまりmid + 1です。
            それ以外の 場合(mid_value < arr_value)
            { 
                left = mid + 1; 
            } 
        } 
        戻り値 - 1 ; 
    } 
} 


int型のmain()
{ 
    // バイナリ探索要素用いて、intの配列を定義する
    int型 ARR [ 10 ] = { 13579101646であるが8891である}; 
    
    INT weizhi = select_arr(ARR、1016 ); 


    戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/shenji/p/12695102.html
おすすめ