#include #include int BinarySearch(int *ar,unsigned num,int key) { unsigned Upper,Lower,Mid; Lower=0; Upper=num-1; for (;;) { Mid=(Upper+Lower)/2; if (ar[Mid]==key) return Mid; if (ar[Mid]>key) { Upper=Mid-1; } else { Lower=Mid+1; } if (Upper<=Lower) { return -1; } } } void main() { int ar[]={2,6,13,19,21,21,23,29,35,48,62,89,90,95,99,102,109,208,629}; unsigned num; int key,idx; num=sizeof(ar)/sizeof(ar[0]); key=29; idx=BinarySearch(ar,num,key); if (idx == -1) { puts("찾는 값이 없습니다."); } else { printf("찾는 값은 %d번째에 있습니다.\n",idx); } }