09-查找-Introduction

查找

查找表(Search Table):
是由同一类型的数据元素(或记录)构成的集合。
由于中的数据元素之间存在着完全松散的关系
,因此查找表是一种非常灵便的数据结构。

对查找表经常进行的操作:
(1)查询某个 “特定的” 数据元素是否在查找表中。
(2)检索某个 “特定的” 数据元素的各种属性。
(3)在查找表中插入一个数据元素。
(4)从查找表中删去某个数据元素。

查找表的分类

(1) 若对查找表只作查询和检索操作,则称此类查找表为静态查找表(Static Search Table)。
(2) 若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素,则称此类查找表为动态查找表(Dynamic Search Table)。

术语介绍

关键字(Key):
是数据元素(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)。 

主关键字(Primary Key):
若此关键字可以惟一地标识一个记录,则称此关键字为主关键字。
对不同的记录,其主关键字均不同。

次关键字(Secondary Key):
用以识别若干记录的关键字为次关键字。
当数据元素只有一个数据项时,其关键字即为该数据元素的值。

内查找和外查找:
  若整个查找过程全部在内存进行,则称为内查找;若在查找过程中还需要访问外存,
则称为外查找。这里仅介绍内查找。

平均查找长度ASL:
  查找算法的效率,主要看要查找的值与关键字的比较次数,通常用平均查找长度来衡量。

对一个含n个数据元素的表,查找成功时


  

    其中:Pi为找到表中第i个数据元素的概率,且有:

  

         

    Ci为查找表中第i个数据元素所用到的比较次数。 不同的查找方法有不同的Ci。

    查找是许多程序中最消耗时间的一部分。因而,一个好的查找方法会大大提高运行速度。












例如

招生录取登记表

学号

姓名

性别

入学总分

录取专业

20010983

张三

438

计算机

20010984

李四

430

计算机

20010985

王五

445

计算机

20010998

张三

458

计算机

此表为一个查找表。
表中每一行为一个记录,学生的学号为记录的关键字。
若给定值为20010985,则通过查找可得学生王五的各项信息。此时查找是成功的。
若给定值为20011930,则由于表中没有关键字为20011930的记录,则查找不成功。



查找的方法取决于查找表的结构。
由于查找表中的数据元素之间不存在明显的组织规律, 因此不便
于查找。
为了提高查找的效率, 需要在查找表中的元素之间人为地附加某
种确定的关系,换句话说, 用另外一种结构来表示查找表。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值