정확한 2분 검색 코드

565 단어 search
이 작은 프로그램에 대해 완전히 쓸 수 있는 사람은 많지 않다고 한다. 제목을 볼 때 머릿속에서 몇 가지 한정된 조건이 무엇인지 생각해 보고 마지막으로 자신의 프로그램이 완전히 정확한지 확인해 보자.
template<typename T>
int binary_search(T *arr,int n,T x)//
{
    int lower,upper;
    lower = 0;
    upper = n - 1;
    while(lower <= upper){
       int mid = (lower + upper) >> 1;//(lower+upper)/2
       if(arr[mid] < x) lower = mid + 1;
       else if(arr[mid] == x) return mid;
       else   upper = mid - 1;
    }
    return -1;
}

좋은 웹페이지 즐겨찾기