83 第9 章 查找 9
1 知识点分析 1
基本概念 (1)查找表 由同一类型的数据元素(或记录)构成的集合称为查找表
(2)静态查找 在查找过程中仅查找某个特定元素是否存在或它的属性的,称为静态查找
(3)动态查找 在查找过程中对查找表进行插入元素或删除元素操作的,称为动态查找
(4)关键字 关键字是数据元素(或记录)中某个数据项的值,用它可以标识数据元素(或记录)
关键字分主关键字(唯一地标识一个记录的关键字)和次关键字(标识若干个记录的关键字)
(5)查找 在查找表中确定是否存在一个数据元素的关键字等于给定值的操作,称为查找(也称为检索)
(6)内查找、外查找 整个查找过程全部在内存进行,则称为内查找;若在查找过程中还需要访问外存,则称为外查找
(7)平均查找长度 ASL 查找成功时平均查找长度: 其中:Pi为找到表中第i 个数据元素的概率,且有: Ci为查找表中第i 个数据元素所用到的比较次数
不同的查找方法有不同的Ci
2.顺序查找 顺序查找又称线性查找,是最基本的查找方法之一
顺序查找既适用于顺序表,也适用于链表
顺序查找的基本思想:从表的一端开始,顺序扫描线性表,依次按给定值kx与关键字(Key)进行比较,若相等,则查找成功,并给出数据元素在表中的位置;若整个表查找完毕,仍未找到与 kx相同的关键字,则查找失败,给出失败信息
3.二分查找 二分查找也叫折半查找,是一种效率较高的查找方法,但前提是表中元素必须按关键字有序(按关键字递增或递减)排列
二分查找的基本思想:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功;若给定值小于中间元素的关键字,则在中间元素的左半区继续查找;若给定值大于中间元素的关键字,则在中间元素的右半区继续查找
不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败