基于线性结构的查找主要就是顺序查找和折半查找
1. 顺序查找
特点是用所给的关键字与线性表中各元素的关键字逐个进行比较,直到成功或失败。
基本思想是:在查找表的一端设置一个称为“监视哨”的附加单元,存放要查找的数据元素关键字。然后从表的另一端开始查找,如果在“监视哨”位置找到给定关键字,则失败,否则成功返回相应元素的位置
2.折半查找
又称二分查找。
这种查找方法需要待查表满足两个条件:
- 首先,查找表必须使用顺序的存储结构。
- 其次,查找表必须按关键字大小有序排列。
基本思想是:
首先,将查找表中间位置数据元素的关键字与给定关键字比较,如果相等则查找成功;
——> 否则利用中间元素将表一分为二,如果中间元素关键字大于给定关键字,则在前一子表中进行折半查找;
——> 否则在后一子表中进行折半查找。
——> 重复以上过程,知道找到满足条件的元素,则查找成功;或知道子表为空为止,此时查找不成功。
例 8-1 已知如下11个数据元素的有序表,在有序表中查找关键字27和28。
(5,13,17,27,36,41,46,50,75,88,92)