「这是我参与2022首次更文挑战的第26天,活动详情查看:2022首次更文挑战」。
静态查找表:只作查找操作的查找表。它的主要操作有:查询某个特定的数据元素是否在查找表中。检索某个特定的数据元素和各种属性。
动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。它的主要操作:查找时插入数据元素。查找时删除数据元素。
顺序表查找
顺序查找又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个记录开始,逐个进行记录的关建字和给定值比较,若某个记录的关建字和给定的值相等,则查找成功,否则查找失败。
int Sequential_Search(int *a,int n,int key)
{
int i;
for(i=1;i<=n;i++)
{
if(a[i]==key)
return i;
}
return 0;
}
有序表查找
折半查找
折半查找又叫二分查找,是数据结构的基本查找之一,也非常重要,它的前提条件是线性表中的记录必须是关键码有序,线性表必须采用顺序存储。其基本思想为:取有序表中的中间记录作为比较对象,若给的值与中间值相等,则查找成功,若小于中间值,则在其左边区间内继续查找,若大于,则在右边区间内查找,直到找到为止,若都无,则查找失败。
索引:把一个关键字与它对应记录相关联的过程。
线性索引查找
索引按照结构可以分为线性索引,多级索引,树形索引等。
线性索引:将索引项集合组织为线性结构,也称为索引表。 线性索引又分为三种索引:稠密索引、分块索引、倒排索引。
稠密索引
在线性索引中,将数据集的每个记录对应一个索引项,索引项一定是按照关键码有序的排序。
当用索引查找关键字时,我们可以用折半,插值等有序查找算法,提高查找效率,但当数据集非常大时,意味着索引也得同样的数据集长度规模,对于内存有限的计算机来说,得不断的访问内存,磁盘,性能就会下降,所以稠密索引适合小型数据集。