//二分查找,迭代版#includeint binarySearch1(int *p,int low,int high,int find){ int mid; while(low<=high)//注意点1,当相等时仍需要再进行一次 { mid = (low+high)/2; if(p[mid] == find) return mid; else if(p[mid] < find) { low = mid+1; } else if(p[mid] > find) { high = mid-1; } } return -1;}//二分查找,递归版int binarySearch2(int *p,int low,int high,int find){ int mid; if(low<=high)//注意点1,当相等时仍需要再进行一次 { mid = (low+high)/2; if(p[mid] == find) return mid; else if(p[mid] < find) { return binarySearch2(p,mid+1,high,find); } else if(p[mid] > find) { return binarySearch2(p,low,mid-1,find); } } return -1;}int main(void){ int arr[10] = { 1,15,23,33,45,56,87,91,100,102}; int idx = binarySearch2(arr,0,9,91); if(idx != -1) { printf("your find idx = %d\n",idx); } else printf("find none\n"); return 0;}