⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8-2-3.txt

📁 数据结构源程序
💻 TXT
字号:
/*折半查找的基本运算与实现*/
#include <stdio.h>
#include <malloc.h>
typedef int keytype;
typedef struct
{
	keytype num;	
}datatype;
typedef struct
{
	datatype *data;
	int length;
}S_TBL;
int Binary_Search(S_TBL *tbl,keytype kx);
void main()
{
	int i,flag;
	keytype kx;
	S_TBL *tbl=(S_TBL *)malloc(sizeof(S_TBL));
	printf("please input table length:\n");
	scanf("%d",&(tbl->length));
	tbl->data=(datatype *)calloc( tbl->length, sizeof(datatype) );
	printf("\nplease input element:\n");
	for(i=1;i<=tbl->length;i++)
	{
		scanf("%d",&((tbl->data[i]).num));		
	}
	printf("\nplease input a value that you want to find:\n");
	scanf("%d",&kx);
	flag=Binary_Search(tbl,kx);
	if(flag==0)
	{
		printf("search failed!\n");
	}
	else
	{
		printf("place=%6d\n",flag);
	}
}
int Binary_Search(S_TBL *tbl,keytype kx)
{
	int low,high,mid,flag;
	flag=0;
	low=1;
	high=tbl->length;
	while(low<=high)
	{
		mid=(low+high)/2;
		if(kx<tbl->data[mid].num)
		{
			high=mid-1;
		}
		else if(kx>tbl->data[mid].num)
		{
			low=mid+1;
		}
		else
		{
			flag=mid;
			break;
		}
	}
	return flag;
}

⌨️ 快捷键说明

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