非常基础的一道数据结构题,算法大家都懂,我就敲下代码练练手而已
#include <stdio.h>
#define NUM 5
int bin_search(int x,int a[],int n);
void main(){
int x = 3;
int a[NUM];
for(int i = 0 ; i< NUM; i++){
a[i] = i;
}
printf("%d",bin_search(x,a,NUM));
}
int bin_search(int x,int a[],int n){
int low,high,mid;
low = 0;
high = n - 1;
while(low <= high){
mid = (low + high) / 2;
if(x < a[mid]){
high = mid - 1;
}
else if(x > a[mid]){
low = mid + 1;
}
else{
return mid;
}
}
return -1;
}