【数据结构】静态查找之顺序查找

【思想】
      从表的最后一个数据元素位置开始,从后往前依次将各个位置上的数据元素的键值与给定值比较。若某个位置上的数据元素的键值与给定值相等,则查找成功,并返回该位置作为结果;反之,若查找至第一个元素,所有数据元素的键值均与给定值不等,则查找不成功。
【ASL】
      ASL指的是平均查找长度,是指为找到数据元素在查找表中的位置,与给定值进行比较的键值个数的期望值。
    1、在等概率查找的情况下,顺序表查找成功的平均查找长度为
                         ASL= PiCi = (n+1)/2,(i=1,2,...n),
          其中n为表长,Pi为查找表中第i个元素的概率 PiCi=1 ,Ci为找到该元素时,曾和给定值比较过的关键字的次数)
    2、若给定值key不在表中,则需要(n+1)次查找比较,才可确定查找失败。
【时间复杂度】
          时间复杂度为O(n)
【优缺点】
    (1)优点:①算法简单②适用性广泛(对表的结构无任何要求)
    (2)缺点:查找效率低
【算法描述】
int SearchSqTable (SqTable T,KeyType key)
{
T.elem[0].key=key;  //设置岗哨
i=T.n  //设置比较位置初值
while(T.elem[i].key !=key)
i--;  //未找到时,修改比较位置继续查找
return i;  //若找到,则返回当前位置
}
注:上例是从后往前找,所以i初值为顺序表表长。若从前往后找,则i初值为0.
相关博客链接:
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值