庄生晓梦

庄生晓梦迷蝴蝶

博客园 首页 新随笔 联系 订阅 管理
  164 随笔 :: 3 文章 :: 1 评论 :: 74038 阅读
#include <stdio.h>

int halfSearch( int arr[], int num, int size ) {
	int min = 0, max = ( size - 1), mid;
	if ( size == 0 ) { return -1; }
	while ( 1 ) {
		// 1. when the boundary is "min" or "max"
		if ( num == arr[ min ] ) { return min ; }
		if ( num == arr[ max ] ) { return max ; }
		
		// 2. check the not found.
		if ( 1 == ( max - min ) ) { return -1; }
		
		// 3. reset the middle.
		mid = ( max - min ) / 2 + min;

		// 4. check num is middle, and reset the boundary "min" or "max"
		if ( num == arr[ mid ] ) { return mid; }
		else if ( num > arr[ mid ] ) {
			min = mid;
		} else {
			max = mid;
		}

	}

	return -1;
}

void main(void) {
	int arr[] = {1,3,4,6,7,8,8,9,44,345,666}; // 

	int idx = halfSearch( arr, 9 , sizeof( arr ) / sizeof( int  ) );


	if ( idx == -1 ) {
		printf( "未找到!\n" );
	} else {
		printf( "找到数据%d,下标%d \n", arr[idx], idx );
	}
}


已有 0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐



posted on   qwop  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示