robod

好好学习,天天向上

本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star

⭐⭐⭐⭐⭐转载请注明出处:https://blog.csdn.net/weixin_43461520/article/details/124377079

7.1 查找的基本概念

  • 查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找。

  • 查找表(查找结构):用于查找的数据集合称为查找表,它由同⼀类型的数据元素(或记录)组成。对于只需要进行查找符合条件的数据元素操作的查找表称为静态查找表;对于也需要进行插入、删除某个数据元素操作的称为动态查找表

  • 关键字:数据元素中唯⼀标识该元素的某个数据项的值,使⽤基于关键字的查找,查找结果应该是唯⼀的。

  • 查找长度:在查找运算中,需要对比关键字的次数称为查找长度。所有查找过程中进⾏关键字的⽐较次数的平均值称为平均查找长度

7.2 顺序查找和折半查找

7.2.1 顺序查找

顺序查找又称线性查找,它对顺序表和链表都是适用的。从头到尾查找或者从尾到头查找。时间复杂度为O(n)

typedef struct {
    ElemType *elem;
    int TableLen;
} SSTable;

//顺序查找
int Search_Seq(SSTable ST, ElemType key) {
    int i;
    //遍历找到指定元素
    for (i = 0; i < ST.TableLen && ST.elem[i] != key; i++);
    //找到返回数组下标,未找到返回-1
    return i != ST.TableLen ? i : -1;
}

对于一个有序的线性表而言,使用查找判定树分析,其查找效率为

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2022-01-15
  • 2022-02-07
  • 2021-07-24
猜你喜欢
  • 2021-10-25
  • 2021-10-28
  • 2021-12-08
  • 2022-02-07
  • 2021-12-12
  • 2021-05-08
  • 2021-12-20
相关资源
相似解决方案