バイナリサーチ

バイナリサーチは条件として、データが昇順にソートされている必要があります。ソートは一般的に検索よりも時間がかかります。

#include < stdio.h >
#include < search.h >

int cmp_func(int *a,int *b)
{
    return((*a)-(*b));
}

void main()
{
    static int ary[10]={2,4,1,3,5,7,9,6,8,0};
    static int target=5;
    int *ptr;
    
    qsort(ary,10,sizeof(int),cmp_func);
    
    ptr=(int *)bsearch(&target,ary,10,sizeof(int),cmp=func);
    if(ptr!=NULL){
        printf("target is ary[%d]\n",ptr-ary);
    }
    else{
        printf("target not found\n");
    }
}