概述:
顺序查找的查找过程为:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,若直至第一个记录,其关键字和给定值比较都不等,则表明表中没有所查记录,查找不成功。
分析:
以查找数字为例,为提高查找效率,应设置“哨兵”(详见代码)。
源代码:
#include <stdio.h>
int search(int *a,int length){int i=length; //定义长度int key; //定义要查找的数printf("请输入要查找的数:");scanf("%d",&key); a[0]=key; //设置"哨兵"while(a[i]!=key){i--;}return i;
}
int main(){int length;int x;printf("请输入元素的个数:");scanf("%d",&length);int a[length+1];printf("请依次输入元素(空格隔开):");for(int i=1;i<=length;i++){scanf("%d",&a[i]);}x=search(a,length);if(x==0)printf("查找的数不在表中");elseprintf("此数在表的第%d位\n",x);return 0;
}