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

📄 r_search.java

📁 已经编写好的数据结构课本程序可以减轻您的负担
💻 JAVA
字号:
/* =============== Program Description =============== */
/* 程序名称: r_search.c                               */
/* 程序目的: 运用递归方式设计折半查找法的程序         */
/* Written By Kuo-Yu Huang. (WANT Studio.)             */
/* =================================================== */
#define Max	20
int	Data[Max] = {  12,  16,  19,  22,  25,
				  32,  39,  48,  55,  57,
				  58,  63,  68,  69,  70,
				  78,  84,  88,  90,  97};	/* 数据数组 */
int Counter = 0;	/* 计数器 */
/* --------------------------------------------------- */
/* 折半查找法                                          */
/* --------------------------------------------------- */
int	Binary_Search(int Left,int Right,int Key)
{
	int	Middle;		/* 中位数变量 */

	Counter ++;
	if ( Left > Right )
		return 0;
	else
	{
		Middle = ( Left + Right ) / 2;
		if ( Key < Data[Middle] )	/* 欲查找值较小 */
			return Binary_Search(Left,Middle - 1,Key);	/* 查找前半段	*/
		else if ( Key > Data[Middle] )	/* 欲查找值较大 */
			return Binary_Search(Middle + 1,Right,Key);	/* 查找后半段	*/
		else if ( Key == Data[Middle] )	/* 查找到数据	*/
		{
			printf ("Data[%d] = %d\n",Middle,Data[Middle]);
			return 1;
		}
	}
	return 0;
}

/* --------------------------------------------------- */
/* 主程序                                              */
/* --------------------------------------------------- */
void main ()
{
	int	KeyValue;	/* 欲查找数据变量 */

	printf("Please enter your key value : ");
	scanf("%d",&KeyValue);

	if ( Binary_Search(0,Max-1,KeyValue) )
		printf("Search Time = %d\n",Counter);	/* 输出查找次数 */
	else
		printf("No Found!!\n");	/* 输出没有找到数据 */
}

⌨️ 快捷键说明

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