码迷,mamicode.com
首页 > 其他好文 > 详细

顺序查找

时间:2020-07-15 23:37:04      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:code   isp   arc   src   判断   table   思想   优化   顺序表   

顺序查找

  1. 算法思想
  2. 算法实现
  3. 算法优化

顺序查找的算法思想

顺序查找,又叫“线性查找”,通常用于线性表

从头到尾查

顺序查找的实现

typedef struct{			//查找表的数据结构(顺序表)
    ElemType *elem;		//动态数组的基址
    int TableLen;		//表的长度
}SSTable;

//顺序查找
int Serach_Seq(SSTable ST,ElemType key){
    int ;
    for(i=0;i<ST.TableLen && ST.elem[i] != key;++i); 
    //查找成功,则返回元素下标;查找失败,则返回-1
    return i == ST.TableLen ? -1 : i;
}

顺序查找的实现(哨兵)

typedef struct{
    ElemType *elem;
    int TableLen;
}

//顺序查找
int Search_Seq(SSTable ST,ElemType key){
    ST.elem[0] = key;			//哨兵
    int i;
    for(i=ST.TableLen;ST.elem[i]!=key;--i);
    return i;
}

技术图片

优点:无需判断是否越界,效率更高。

查找效率分析

技术图片

技术图片

顺序查找的优化(对有序表)

技术图片

共有n+1种查找失败的情况

\[ASL_{失败} = \frac{1+2+3+...+n+n}{n+1} = \frac{n}{2}+\frac{n}{n+1} \]

用查找判定树分析ASL

技术图片

顺序查找的优化(被查概率不相等)

把被查找概率大的放在前面。

技术图片

知识回顾

{{uploading-image-757343.png(uploading...)}}

顺序查找

标签:code   isp   arc   src   判断   table   思想   优化   顺序表   

原文地址:https://www.cnblogs.com/jev-0987/p/13307719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!