算法与数据结构1800题

散列表详解

D

理论上,散列表的平均比较次数为1次

散列函数的函数值,应当以同等概率,取值域内的每一个值

C

C 直接定址法,除留取余法,数字分析法

装载因子越大,越容易产生冲突
再散列,同样可能产生聚集
对于直接定址法,是可以完全避免冲突的,但是容易造成空间的浪费

B 在哈希表中查找,也需要进行关键字比较,看看根据散列地址取得的值,是否是自己需要的值

链地址法在处理冲突时,将同义词放在同一个链表中,同义词冲突不等于聚集,所以不会产生聚集现象
聚集是采取了不恰当的处理冲突的方法,使得不同关键字的元素对同一散列地址进行争夺的现象,当采用线性探测法(包括平方探测法)的时候,容易产生聚集现象

散列文件的优点是:文件随机存放,记录不需进行排序;插入、删除方便;存取速度快;不需要索引区,节省存储空间。其缺点是:不能进行顺序存取,只能按关键字随机存取,且询问方式限于简单询问,并且在经过多次插入、删除后,也可能造成文件结构不合理,需要重新组织文件。

A C 如果采用链地址法,需要mod个链表,数组的下标范围为0~16

D

D,C

B

再哈希法是一种处理冲突的方法,如果出现冲突,使用另一个哈希函数,计算下一个哈希地址,不易产生聚集
链地址法不会产生聚集
聚集:非同义词聚集在一起

采用开放定址法解决冲突的哈希查找中,发生聚集的主要原因是:解决冲突的算法选择不好

同义词:经过哈希函数计算得到的地址相同的值,叫做同义词

查找低效的数据结构是:堆,堆只有和左右孩子节点之间形成固定的关系

D

二分法,要求元素有序排列,且可以随机存取(顺序表)


折半查找属于静态查找表,其判定树是确定的,查找长度不超过判定树的深度(与相同元素个数的完全二叉树深度相同).
二元查找树属于动态查找表,查找长度取决于树的形状,最差情况下是单支树

单链表不适合使用折半查找

在等概率查找的情况下,当查找成功,有序和无序,在顺序查找的情况下的平均查找长度是相同的,当查找失败,有序和无序在顺序查找的情况下平均查找长度是不同的
有序,查找失败的平均查找长度,有序的较短


在每块中,内部元素是无序的,所以需要顺序查找,因此与每块中的元素个数有关,索引只是副本

分块有序表属于静态查找表,不适用于动态查找
二叉排序树,平衡二叉排序树(AVL),B树,键树
Trie树,又称字典树、前缀树、单词查找树、键树,是一种多叉树形结构


磁带存储介质只能顺序查找

错 对二叉排序树进行中序遍历可以得到从小到大的序列

在二叉排序树中插入一个节点,一定作为叶子节点插入

静态最优查找树是二分查找的判定树,其中各个节点不是等概率查找,所以存在最优
次优二叉树也是非等概率下的二分查找的判定树,是静态查找表
而二叉排序树是动态树表
二叉排序树有多种,高度最小的是最佳的


最坏的情况下为单支,查找长度为n,ASL是平均查找长度,为(n+1)/2


堆只保证根节点大于左孩子节点,小于右孩子节点,不保证根节点的左子树中的所有节点,小于根节点,不保证根节点的右子树中的所有节点,大于根节点


对两棵具有相同关键字而形状不同的二叉排序树,中序遍历的到的序列顺序是一致的

转载于:https://juejin.im/post/5b938f356fb9a05d151c83c6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值