数据结构之查找

本文详细介绍了数据结构中的查找技术,包括顺序查找、有序表查找如折半查找、插值查找和斐波那契查找,以及线性索引查找的概念。特别讨论了二叉排序树的性质和删除操作,强调了平衡二叉树(AVL树)的重要性,平衡因子的概念及其对查找效率的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找

  1. 概论
    查找表(search table):是由同一类型的数据元素构成的集合
    关键字(Key):是数据元素中某个数据项的值
    查找(Searching):就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素
查找方式 Value
静态查找表(Static search table) 只作查找操作和查找表
动态查找表(Dynamic search table) 在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。
  1. 顺序查找
    定义:(Sequential search)又叫线性查找,是最基本的查找方式,过程就说从表中第一个元素记录开始,逐个进行记录的关键字和给定值的比较,若给定的关键字和给定值相等,则查找成功。

  2. 有序表查找
    a.折半查找:通过二分验证的方式进行查找
    b.插值查找:不是二分的方法,更加有目的性。根据要查找的关键字Key与查找表中最大最小记录的关键字比较后的查找方式。
    c.斐波那契查找:
    首先斐波那契数列为0、1、1、2、3、5、8…
    看出规律了吧,就是给定前两个数相加得到第三个数,以此类推,此外:前一个数除以相邻的后一个数,比值无限接近黄金分割。比如5/8 = 0.625.越往后越接近0.618.
    查找的核心是:
    (1)当要查找的数key = a[mid]时候,查找成功;
    (2)当key < a[mid]时候,新范围是第low个到第mid-1个,此时范围个数为F【k-1】-1个;
    (3)当key > a[mid]时候,新范围为第mid+1个到high个,此时范围个数为F[k

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值