#include<stdio.h>
int main(){int a[10]={1,4,5,6,7,8,23,34,90,14567};int mid;int low=0;int high=9;while(low<high){mid=(low+high)/2;//数组分成两段,前一段low-mid,后一段mid-highif (a[mid]<23)//因为已经是排序好的了,所以如果mid<目标,说明前面一段没有,那就从后半段找low=mid+1;//那么此时查找就是从原来的mid后一个到最后的highelse if(a[mid]>23)//mid如果>目标,就是说明目标就在前面这一段里high=mid-1;//那么此时查找的就是从low到现在新的high(就是原来mid的前面一个)elsebreak;}if(low>high)printf("没找到哈\n");elseprintf("找到了目标哈,下标是%d",mid+1);return 0; }