数据结构之顺序查找

来源:互联网 发布:godaddy创建数据库 编辑:程序博客网 时间:2024/05/22 15:47

前面我们介绍了查找分为静态查找和动态查找,并且给出了动态查找之B树的分析和代码,今天我们来个简单的静态查找之顺序查找(含哨兵的)
思路
顺序查找是最简单查找方式,基本思路就是:用给定的关键字值与线性表中各数据元素(或记录)的关键字逐个比对,直到成功或者失败。
算法实现

#include<stdio.h>#define max_len 20typedef struct{    int r[max_len+1];  /*r[0]为关键字*/     int length;}seq;int search(seq st,int k){    int i;    st.r[0]=k;    i=st.length;    while(st.r[i]!=k)    i--;    return i;}int main(){    /*system("color 02"); 颜色*/     seq st;    int value,k,i,len;    printf("input length:");scanf("%d",&len);    st.length=len;    puts("input values");     for(i=1;i<=len;i++)    {        scanf("%d",&(st.r[i]));    }    printf("I need find:");scanf("%d",&value);    k=search(st,value);    if(k)    printf("the value(%d) location: %d\n",value,k);    else    printf("NOT find");    return 0;}

总结
从表中最后一个开始查找,设置哨兵,如果查找成功则返回所查记录,否则返回0,思路简单,但是查找时间复杂度为O(n)

0 0