TJun

第七章学习小结

第七章学习了线性表,树表和散列表(也叫哈希表)的查找

一、

1.线性表的查找有:顺序查找,折半查找和分块查找

 

 2.树表的查找与其结构有关,树表的结构主要有二叉排序树,平衡二叉树,B+树和B-树。

1)二叉排序树的查找过程与折半查找类似,时间复杂度都是O(log₂n),但区别在于折半查找用的是有序的顺序表,若要插入和删除元素要移动大量元素;二叉排序树用的是二叉链表,插入和删除无需移动元素。

2)二叉排序树有一种特殊情况是平衡二叉树,这样的二叉排序树查找性能最好。调整到平衡二叉树的方法有4种:LL型,RR型,LR型,RL型。

3)B-树是一种平衡的多叉查找树,具有平衡,有序,多路的特点。

 

 4)B+树是一种B-树的变形树,更适合由于文件索引流。

与B-树的差异在于:

(1)有n棵子树的结点中含有n个关键字;

(2)所有的叶子结点中包含了全部的关键字信息,以及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而打顺序链接;

(3)所有的非终端结点可以看成是索引部分,结点中仅含有其子树(根结点)中的最大(最小)关键字。

4.散列表的查找是通过一种散列函数把记录的关键字和它在表中的位置建立起对应关系,并在存储记录发生冲突时采用专门的处理冲突的方法,可以通过调节装填因子,把平均查找长度控制在所需的范围内

1) 除留余数法是最常用的构造散列函数的方法。

2)处理冲突的方法通常分为两大类:开放地址法和链地址法

 

 二、

把实践题放上PTA后,显示数组越界了,可惜能力不够,没能找出来哪里越界了

 

posted on 2020-06-28 23:21  TJun  阅读(115)  评论(0编辑  收藏  举报

导航