经典算法之索引查找
活动地址:CSDN21天学习挑战赛
前言
再长的路,一步一个脚印也能走完,再短的路,不迈开双脚也无法到达。
一、什么是索引查找
索引查找又叫分块查找,是一种介于顺序查找和二分查找之间的一种查找方法,索引查找的基本思想是:首先查找索引表,可用二分查找和顺序查找,然后在确定的块中进行顺序查找。
二、索引查找的过程
- 输入
主数据:n个数的序列,通常直接存放在数组中,可以是任何顺序。
基于主数据建立的索引表,索引表中的每个元素存储两个属性:关键字,主数据表中的序号,索引表按关键字有序。待查找元素key。
- 输出
查找成功:返回元素所在位置的编号。
查找失败:返回-1或自定义失败标识。
- 算法说明
基本索引查找是基于一个有序的索引表进行折半查找,然后再根据索引表与主数据表的关系确定数据所在位置的过程。所以只需要在折半查找后,从索引表中取出该元素在主数据集合中对应的位置即可。 - 算法流程
1.索引表中的元素分为关键字和地址两部分。
2.关键字为从主数据表中提取出来的用于排序的属性。
3.在索引表中使用折半查找快速定位待查关键字的位置。
4.根据关联关系,提取出在主数据表中的对应位置。