find.c

来自「数据结构课程设计报告,虽然好多地方都有」· C语言 代码 · 共 90 行

C
90
字号
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 14

/*==================================================*/
//顺序查找
/*==================================================*/
void Find_S(int array[MAXSIZE], int find_x)
{

	int i=0;
	for(;i<MAXSIZE;i++)
	{
		if(array[i]==find_x)
		{
			printf("找到元素[%d]在第[%d]位置\n",array[i],i+1);
			break;
		}
	}
	if(i>MAXSIZE-1)
		printf("未找到\n");
			
	

}



/*==================================================*/
//折半查找
/*==================================================*/
int Middle_Find(int array[MAXSIZE], int find_x)
{
	int low=0,high=MAXSIZE-1,middle,flag=1;
	while(flag&&low<=high)
	{
		middle=(low+high)/2;   //中间位置
		if(array[middle]==find_x)
		{
			printf("找到元素[%d]在第[%d]位置\n",array[middle],middle+1);
			flag=0;
		}
		else if(array[middle]>find_x)
			high=middle-1;  //修改尾位置
		else
			low=middle+1;   //修改头位置
	}
	if(flag)
		printf("未找到\n");
}
			


main()
{
	int scan_switch,i=0,find_x;
	//给定数组,可自己修改
	int array[MAXSIZE]={2,6,9,17,23,35,46,77,89,111,125,185,255,999};
	while(1)
	{
		printf("1.顺序查找法\n");
		printf("2.折半查找法\n");
		printf("3.显示数组\n");
		printf("选择功能码:");
		scanf("%d",&scan_switch);
		switch(scan_switch)
		{
			case 1:
				{
					printf("输入要查找的元素:");
					scanf("%d",&find_x);
					Find_S(array,find_x);
				}break;
			case 2:
				{
					printf("输入要查找的元素:");
					scanf("%d",&find_x);
					Middle_Find(array,find_x);
				}break;
			case 3:
				{
					for(;i<14;i++)
						printf("%d ",array[i]);
					printf("\n");
				}break;
		}
	}
}

⌨️ 快捷键说明

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