bsearch.c

来自「《数据结构-使用C语言》第三版」· C语言 代码 · 共 31 行

C
31
字号
//折半查找 
#include<stdio.h>
#define MAX 100
int Bsearch(int a[], int x, int low, int high)
{
	int mid;
	if(low>high)return -1;
	
	mid=(low+high)/2;
	if(x==a[mid])return mid;
	else if(x>a[mid])return Bsearch( a,  x,  mid+1,  high);
	else return Bsearch( a,  x,  low,  mid-1);
}

int main()
{
	int a[MAX];
	int x,n,i,t;
	while(scanf("%d%d",&n,&x)!=EOF)
	{
		for(i=0;i<n;i++)
		scanf("%d",&a[i]);
		
		t=Bsearch(a, x, 0, n-1);
		if(t<0)printf("NO\n");
		else printf("%d\n",t);
	}
	return 0;
}
		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?