Search in Rotated Sorted Array II

 

    bool search(int A[], int n, int target) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        int begin = 0,end = n-1;
        while(begin<=end)
        {
            int mid = begin+(end-begin)/2;
            if(A[mid]==target)
                return true;
            if(A[begin]<A[mid])//left part is sorted
            {
                if(A[begin]<=target&&target<A[mid])
                    end = mid-1;
                else
                    begin = mid+1;
            }else if(A[begin]>A[mid]) //right part is sorted
            {
                if(A[mid]<target&&target<=A[end])
                    begin = mid+1;
                else
                    end = mid-1;
            }else
                begin++;
        }
        return false;
        
    }

  

posted @ 2013-10-10 22:17  summer_zhou  阅读(118)  评论(0编辑  收藏  举报