简单的线性搜索
在一个数组中遍历找到某个数的位置(或确认是否存在)
//遍历函数,线性搜索数组内值为x的下标为多少
#include<stdio.h>
int search_math(int key,int length,int a[]) {//key为被搜索的值
/*设置rets的用意,若key肯定在数组中就是要输出他的下标时,
则可以直接在判断key与数组中的那个值相等时就返回其下标,
如果key不在数组中呢?所返回的值就应该与上述的有所区别了,
所以需要一个变量来区分二者关系,这就是rets存在的意义
*/
int rets=0;
int i = 0;
for (i; i < length; i++) {//遍历数组
if (key == a[i]) {//判断在数组中是否有和key相同的数组元素
rets=i;//如果有,将下标赋值给rets,并返回其下标
break;
}
}
//这个是为了判断所搜寻的值如果不在数组中,则返回的值为-1
if (i == length) {/*如果在数组中没有与key相等元素,则遍历就到了结尾,i就成了最大值也就是length
因此返回的值就需要与上述key存在数组中时有所区别
*/
rets = -1;
}
return rets;
}
int main(void) {
int a[] = { 2,3,1,4,5,8,123 };//直接初始化一个数组
int ret=search_math(100, sizeof(a) / sizeof(a[0]), a);//sizeof(a) / sizeof(a[0])这个东东就是数组的长度
printf("%d", ret);
}