#include<stdio.h> #include<stdlib.h> int main() { int arr[]= {1,3,5,13,23,24,35,200}; int ret= binsearch(1,arr,0,sizeof(arr)/sizeof(arr[0])-1); if(ret==-1) { printf("not exist"); } else { printf("%d\n",ret); } return 0; } int binsearch(int x,int arr[],int left,int right) { while(left<=right) { int mid=left-(left-right)/2; if(x<arr[mid]) { right=mid-1; } else if(x>arr[mid]) { left=mid+1; } else if(x==arr[mid]) { return arr[mid]; } } return -1; }
原文:http://10740329.blog.51cto.com/10730329/1702995