/*
主题:顺序查找就是从数据序列中的第一个元素开始逐个查找,
直到找到所要的数据或搜索完整个数据序列。
作者:karl
邮箱:nixindong@hotmail.com
开发环境:Visual Studio
开发语言:C
*/
#include <stdio.h>
int search(int a[], int x);
int main(void)
{
int i, x, n;
int a[10];
printf("请输入10个数字!\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
printf("请输入要查找的数:");
scanf("%d", &x);
if ((n = search(a, x)) > 0)
{
printf("你要找的数%d在数组中第%d个位置", x, n);
}
else
{
puts("你找的数不存在");
}
return 0;
}
/*
函数名称:search
函数功能:在一个给定的数组中顺序查找给定的一个数
函数参数:
a:数组
x:给定的数
返回值:类型(int)
如果在数组查找到这个数,则返回这个数的位置(1~n)
如果没有,则返回-1
*/
int search(int a[], int x)
{
int i, f = -1;
for (i = 0; i < 10; i++)
{
if (x == a[i])
{
f = i + 1;
break; //查找到这个数了,则跳出for循环
}
}
return (f);
}
顺序查找的几种情况:
最理想查找的次数为一次,
最差的情况是比较完所有的(n个)数据
平均比较次数为n/2次