二分查找

思路:只能对有序的数组进行查找,每次找将查找范围减少一半。

 

#include<iostream>

using namespace std;

 

int f(int s[], int n, int v){

    int left,righ,mid;

    left = 0;

    righ = n-1;

    while(left >= righ){

        mid=(left + mid)/2;

        if(s[mid] > v){                   //查找值在左边

            righ = mid;

        }

        else if(s[mid] < v){            //查找值在右边

            left = mid;

        }

        else{

            return mid;              //查找值为中点

        }

    }

    return -1;

}

posted @ 2013-10-26 00:01  静坐观雨  阅读(155)  评论(0)    收藏  举报