查找算法整理之索引查找
索引查找是在索引表和主表(即线性表的索引存储结构)上进行的查找。
索引查找的过程是:
1) 首先根据给定的索引值K1,在索引表上查找出索引值等于KI的索引项,以确定对应予表在主表中的开始位置和长度,
2) 然后再根据给定的关键字K2,茬对应的子表中查找出关键字等于K2的元素(结点)。对索引表或子表进行查找时,若表是顺序存储的有序表,则既可进行顺序查找,也可进行二分查找,否则只能进行顺序查找。
一提到“索引”,估计大家第一反应就是“数据库索引”,对的,其实主键建立“索引”,就是方便我们在海量数据中查找。
实现索引查找时常使用的三个术语:
1) 主表:这个很简单,要查找的对象。
2) 索引项:一般我们会用函数将一个主表划分成几个子表,每个子表建立一个索引,这个索引叫做索引项。
3) 索引表:索引项的集合也就是索引表。
一般“索引项”包含三种内容:index,start,length
第一: index,也就是索引指向主表的关键字。
第二:start,也就是index在主表中的位置。
第三:length,也就是子表的区间长度。
代码实现: