数据结构复习笔记-------查找

本文主要探讨数据结构中的查找技术,包括线性搜索、二分查找、哈希表查找等方法,深入理解其原理与应用。通过实例分析,帮助读者掌握不同查找算法的效率和适用场景。
摘要由CSDN通过智能技术生成

知识点1:

关键码:可以标识一个记录的某个数据项。

键值:关键码的值。

主关键码:可以唯一地标识一个记录的关键码。

次关键码:不能唯一地标识一个记录的关键码。

查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。

查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。

静态查找 :不涉及插入和删除操作的查找 。

动态查找 :涉及插入和删除操作的查找。

查找结构 :面向查找操作的数据结构 ,即查找基于的数据结构。(线形表、树表、散列表)

知识点2:

线性表的查找——顺序查找

设置“哨兵”。免去了在查找过程中每一次比较后都要判断查找位置是否越界,从而提高查找速度。

 

顺序查找算法:

int SeqSearch(int r[ ], int n, int k)

{   

     r[0]=k; i=n;

     while (r[i]!=k)

        i --;

     return i;

}

成功:最好:比较1次;最坏:比较n次

      ASL=(n+1)/2

失败:ASL=n+1

顺序查找适合的存储结构:顺序存储、链接存储

顺序查找对数据元素是否有序没有要求。

知识点3:

线性表的查找——折半查找

前提条件:1、顺序存储;2、有序序列

折半查找的思想:

 

如果k>r[mid] ,右半区找,low=mid+1;

如果k<r[mid],左半区找,high=mid-1;

如果k=r[mid],查找成功

递归算法:

int BinSearch2(int r[ ], int low, int high, int k)

{   

    if (low>high) return 0;  

    else {  mid=(low+high)/2;

    if (k<r[mid]) return BinSearch2(r, low, mid-1, k);

    else  if (k>r[mid])

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小美女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值