分割統治のバイナリ検索

書式#include <iostreamの> 
の#include <アルゴリズム>
 使用して 名前空間はstdを、
const  int型 M = 10000 ;
int型のx、N、I;
INT S [M]。

INT BinarySearch(整数 nは、INT S []、INT X)
{ 
    int型低= 0、ハイ= N- 1 ;
    一方(低<= 高)
    { 
        int型中間=(ハイロー+)/ 2 もし(x == S [中央])
        { 
            戻り中間。
        }
        他の 場合(X> S [中央])
        { 
            低い =中央+ 1 
        } 
        
        {  =中型1 
        } 
    } 
    リターン - 1 
} 

int型のmain()
{ 
    一方(CIN >> N)
    { 
        (i = 0 ; iがn <; iは++ 
        { 
            CIN >> S [i]は、
        } 
        ソート(S、S + N)。
        以下のための(I =0 ; 私は、n <; 私は++ 
        { 
            COUT << S [I] << "  " 
        } 
        COUT << ENDL。
        cinを >> X; 
        I = BinarySearch(N、S、X)。
        もし(I == - 1 
        { 
            COUT << " meiyou " << ENDL。
        } 
        
        { 
            COUT << " " << I + 1 << "endl; 
        } 
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/xjyxp/p/11141008.html