2분 찾기 (귀속 실현)

3993 단어
#include<string.h>
#include
int k;
int binarysearch(int a[],int x,int low,int high)//a ( ),x ,low,high 
{
    if(low>high)
    {
        return -1;// 
    }
    int mid=(low+high)/2;
    if(x==a[mid])// x
    {
        k=mid;
        return x;
    }
    else if(x>a[mid]) //x 
    {
        binarysearch(a,x,mid+1,high);// 
    }
    else//x 
    {
        binarysearch(a,x,low,mid-1);
    }
}
int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    printf("
"); int x; scanf("%d",&x); int r=binarysearch(a,x,0,9); if(r==-1) { printf("
"); } else { printf(" , %d
",k+1); } return 0; }

좋은 웹페이지 즐겨찾기