第七章学习小结

wuxiaosi0 2020-06-28

查找操作:查询、检索、插入、删除

1)顺序查找:

①一般线性表的顺序查找:从线性表的一端开始,逐个检查关键字是否满足给定的条件。若查找到某个元素的关键字满足给定条件,则查找成功,返回该元素在线性表中的位置;若已经查找到表的另一端,还没有查找到符合给定条件的元素,则返回查找失败的信息。

②有序表的顺序查找

优缺点:与其他查找算法相比,其缺点是平均查找长度较大,特别是当n较大时,查找效率低,但他有个很大的优点是算法简单且适应面广,它对表的结构无任何要求,无论记录是否按关键字有序均可应用。

2)二分查找:二分查找又称折半查找,二分查找首先要求待查找的表是有序表,如果要查找的元素是表的中间的那个元素,则找到要查找的元素,查找成功;如果要查找的元素比中间的那个元素小则使用相同的策略只在左边的区间查找就可以;如果要查找的元素比中间的那个元素大,则使用相同的策略在右边的区间进行查找;每次将待查找的元素的所在区间缩小一半。

优缺点:查找的效率较高,但是只适用于有序表,且限于顺序存储结构,对线性链表无法有效的进行查找,还有二分查找在一些特殊情况下,其查找效率很低,如查找元素是数列中的第一个元素和最后一个元素。

3)分块查找:又称为索引顺序查找,把表分成若干块,块与块之间是有序,块内部可以是无序,对顺序表进行分块查找需要额外建立一个索引表。

4)平衡树

B树

B+树

5)散列表

构造:数字分析法;平方取中法;折叠法;除留余数法。

散列冲突:当两个关键字key_1key1?!=key_2key2?,但是却有f(key_1key1?) =f(key_2key2?),这种现象我们叫做散列冲突。

冲突处理:开放地址法;线性探测法;二次探测法;随机探测法。

相关推荐