书-二分查找找某个数字p155

2023-12-13 06:06:18
#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-high
		if (a[mid]<23)//因为已经是排序好的了,所以如果mid<目标,说明前面一段没有,那就从后半段找
			low=mid+1;//那么此时查找就是从原来的mid后一个到最后的high
		else if(a[mid]>23)//mid如果>目标,就是说明目标就在前面这一段里
			high=mid-1;//那么此时查找的就是从low到现在新的high(就是原来mid的前面一个)
		else
			break;
		}
	if(low>high)
		printf("没找到哈\n");
	else
		printf("找到了目标哈,下标是%d",mid+1);
		
	return 0;	
		
		
		
		
		
	}
	
	

在这里插入图片描述

文章来源:https://blog.csdn.net/becomeyee/article/details/134949987
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。