1 int bin_search(ElementType a[], int num,ElementType obj) 2 { 3 int low=0,high=num-1,mid; 4 while(low<=high) 5 { 6 mid=(low+high)/2; 7 if(a[mid]==obj) 8 { 9 return mid; 10 } 11 else if(a[mid]<obj) 12 { 13 low=mid+1; 14 } 15 else 16 { 17 high=mid-1; 18 } 19 } 20 return -1; 21 }
改进一下,更普适点
int bin_search(ElementType a[], int left,int right,ElementType obj) { int low=left,high=right,mid; while(low<=high) { mid=(low+high)/2; if(a[mid]==obj) { return mid; } else if(a[mid]<obj) { low=mid+1; } else { high=mid-1; } } return -1; }
原文:https://www.cnblogs.com/lxzbky/p/12485845.html