c二分查找,非数据结构实现 - 在线代码运行


            
执行结果

名称:c二分查找,非数据结构实现

当前代码

#include <stdio.h>
void TPL(int a);
int main(void)
{
	printf("\n");
	TPL(23);
	return 0;
}
//下面这段代码利用非数据结构实现二分查找,这里范围为0 - 100 
//a是待查找的数,以便查看a是否在0-100中 
void TPL(int a)
{
	int j = 100;//最大值 
	int k = 0;//最小值 
	int t = 50;//中间值 
	if(a > j || a < k)
	{
		printf("a不在集合(0 - 100)中");
		return;
	}
	while(1)
	{
		if(a == j)
		{
			printf("a在集合中,a == %d\n", j);	
			break;
		}
		if(a == k)
		{
			printf("a在集合中,a == %d\n", k);	
			break;
		}
		if(a == t)
		{
			printf("a在集合中,a == %d\n", t);	
			break;
		}
		if(a > t && a < j)//上半段 
		{
			k = t;
			t += (j - t) / 2;
		}
		else if(a > k && a < t)//下半段 
		{
			j = t;
			t -= (t - k) / 2;
		}
	} 
	return;
}