数据结构(七)——查找之静态查找表

本文详细探讨了四种静态查找表的查找方法:顺序查找、折半查找、静态树表查找和索引顺序表查找。顺序查找中,从前往后和从后往前各有优劣;有序表采用折半查找,显著提升效率;静态树表利用数据频率构建,类似Huffman树;索引顺序表结合索引与顺序表,通过块和最大值快速定位数据。
摘要由CSDN通过智能技术生成

顺序表的查找

从前往后找

  • 从第一个开始进行判断,对表中的元素和要查找的元素一一对应
  • 但是在判断元素是否相等的同时,也要对其增加一个 if 语句的判断,用于判断是否已经检索到了表尾
  • 但在顺序表的查找中一般是一定查找地到的,而且 if 判断语句又浪费了近一半的时间,故改进了算法的查找方式

从后往前找

  • 首先要知道这种方式检索的顺序表的表头是空的。
  • 从表尾的最后一个判断,在表头设置一个和即将要检索的元素一样的元素,因此每次只需要判断元素是否相等即可,不要需要判断检索的位置是否超出表长。
  • 由上可知,最后一定会匹配成功。且在匹配的过程中省去了判断是否超出表长的语句。
  • 和从前往后找的不同的地方在于,我们只需要检索最后匹配成功的位置是否是表头,若是表头,那么就表明表中不存在该元素;若不是表头,那就表明表中存在该元素。

有序表的查找

折半查找

  • 如标题,折半查找的前提条件是表是有序的
  • 折半查找的思想:在表头和表尾各设置一个指针(这里的指针是指位置的下标),分别为low和high。
  • 同时再设立一个指针 mid ,mid 等于 mid=(high-low)/ 2+low (这里不直接是 mid =(low+high)/ 2 是防止low+high后数据溢出,产生负数。
  • 这时候,1)若 mid 指向的数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值