📄 find.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -