分治法之二分查找

Posted xjyxp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分治法之二分查找相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <algorithm>
using namespace std;
const int M = 10000;
int x,n,i;
int s[M];

int BinarySearch(int n,int s[],int x)

    int low=0,high=n-1;
    while(low<=high)
    
        int middle=(low+high)/2;
        if(x==s[middle])
        
            return middle;
        
        else if(x>s[middle])
        
            low=middle+1;
        
        else
        
            high=middle-1;
        
    
    return -1;


int main()

    while(cin>>n)
    
        for(i=0; i<n; i++)
        
            cin>>s[i];
        
        sort(s,s+n);
        for(i=0; i<n; i++)
        
            cout<<s[i]<<" ";
        
        cout<<endl;
        cin>>x;
        i=BinarySearch(n,s,x);
        if(i==-1)
        
            cout<<"meiyou"<<endl;
        
        else
        
            cout<<"di"<<i+1<<"wei"<<endl;
        
    
    return 0;

 

以上是关于分治法之二分查找的主要内容,如果未能解决你的问题,请参考以下文章

js 二分查找法之每日一更

分治算法-二分查找

分治算法——二分查找STL函数库的应用第五弹——二分函数

分治算法----折半查找----递归二分算法

二分查找算法

分治算法 ------二分查找