查找

来源:互联网 发布:淘宝内裤男买家秀 编辑:程序博客网 时间:2024/05/01 04:24

查找:

就是在是数据元素集合中查看是否存在于指定的关键字相等的元素。

查找分为两种:静态查找和动态查找。

1) 静态查找:是指在数据元素集合中查找与给定的关键字相等的元素

2) 动态查找:就是指在查找过程中,如果数据元素集合中不存在与给定的关键字相等的元素,则将该元素插入到数据元素集合中。


静态查找主要包括顺序表、有序顺序表和索引顺序表的查找。

1) 顺序表的查找,就是指从表的第一个元素与给定关键字比较,直到表的最后。

2) 有序顺序表的查找,在查找的过程中如果给定的关键字大于表的元素,就可以停止查找,说明表中不存在该元素(假设表中的元素按照关键字从小到大排列,并且查找从第一个元素开始比较)

3) 索引顺序表的查找是为主表建立一个索引,根据所以确定元素所在的范围,这样可以有效地提高查找的效率。


动态查找主要包括二叉排序树、平衡二叉树、B_树和B+树。

这些都是利用二叉树和树的特点对数据元素集合进行排序,通过将元素插入到二叉树或树中建立二叉树或树,然后通过对二叉树或树德遍历按照从小到大输出元素的序列。


散列表是利用散列函数的映射关系直接确定要查找元素的位置,大大减少了与元素的关键字的比较次数。

建立散列表的方法主要有直接定址法、平方取中法、折叠法和除留余数法(最常用)等。

但是会存在冲突,解决冲突的最为常用的方法主要有两个:开放定址法和链地址法。