09-查找-Introduction
来源:互联网 发布:java 读取cad文件 dwg 编辑:程序博客网 时间:2024/06/11 13:04
查找
查找表(Search Table):
是由同一类型的数据元素(或记录)构成的集合。
由于中的数据元素之间存在着完全松散的关系
是由同一类型的数据元素(或记录)构成的集合。
由于中的数据元素之间存在着完全松散的关系
,因此查找表是一种非常灵便的数据结构。
对查找表经常进行的操作:
(1)查询某个 “特定的” 数据元素是否在查找表中。
(2)检索某个 “特定的” 数据元素的各种属性。
(3)在查找表中插入一个数据元素。
(4)从查找表中删去某个数据元素。
(2)检索某个 “特定的” 数据元素的各种属性。
(3)在查找表中插入一个数据元素。
(4)从查找表中删去某个数据元素。
查找表的分类
(1) 若对查找表只作查询和检索操作,则称此类查找表为静态查找表(Static Search Table)。
(2) 若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素,则称此类查找表为动态查找表(Dynamic 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
- 09-查找-Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- introduction
- Introduction
- Introduction
- introduction
- Introduction
- Introduction
- Introduction
- (有误)双向链表
- linux进程间共享内存
- 2013.12.17周二学习笔记
- 对Hibernate的简单认识
- LINUX 3.5.4 PTRACE (系列七)
- 09-查找-Introduction
- 高瞻远瞩HTML5.0
- Array under ARC
- 用C语言的可变参函数实现一个简单的printf函数
- 浅谈随机数发生器
- DB2环境变量与参数的备份
- @Component 、@Repository、@Service 和 @Controller
- linux总线、设备和驱动程序
- Linux内核抢占机制(preempt)