哈希表的平均查找长度是()的函数。
A.哈希表的长度
B.哈希表的装填因子
C.哈希函数
D.表中元素的多少

装填因子 = 关键字个数 / 表长

符号表:是 “名字(Name)–属性(Attribute)”对的集合
符号表也叫散列表(哈希表)

散列是一种重要的查找方法

它的基本思想是:以数据对象的关键字key为自变量,通过一个确定的函数关系h,计算出
对应的函数值h(key),把这个值解释为数据对象的存储地址,并按此存放,即“存储位置=h(key)”

散列方法中使用的计算函数称为**“散列函数/哈希函数”**
按这个思想构造的表称为散列表

散列函数的构造方法:
数字关键词的散列函数构造

  • 直接定址法:h(key)=a*key+b
  • 除留余数法:h(key)=key mod p
  • 数字分析法

字符串关键词的散列函数构造

处理冲突的方法:

开放地址法

线性探测法
冲突发生时,顺序查看表中下一单元,直到找出一个空单元或查遍全表
二次探测法
冲突发生时,在表的左右进行跳跃式探测,比较灵活

采用开放定址法处理冲突中的二次探测再散列(也即是题目中的二元探测法),则哈希函数变为Hash(key) = (Hash(key) + d) % 11,其中d = 12, -12, 22, -22, 32,……,则开始计算。

分离链接法
其做法就是将散列到同一个值的所有元素保存到一个表中。
双散列探测方法
对于使用平方探测的开放定址散列法,当元素填得太满的时候,操作运行的时间将消耗过长,而且插入操作有可能失败,此时则可以进行一次再散列来解决这一问题。

再散列会创建一个新的散列表,新的散列表大小为大于原散列表大小2倍的第一个素数,随后将原散列表的值重新散列至新的散列表中。

假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行多少次探测?
A.K−1
B.K
C.K+1
D.K(K+1)/2

从一个具有N个结点的单链表中查找其值等于X的结点时,在查找成功的情况下,需平均比较多少个结点?
A.N/2
B.N
C.(N−1)/2
D.(N+1)/2

由于单链表只能进行单向顺序查找,以从第一个节点开始查找为例,查找第m个节点需要比较的节点数f(m)=m,查找成功的最好情况是第一次就查找成功,只用比较1个节点,最坏情况则是最后才查找成功,需要比较n个节点。

所以一共有n种情况,平均下来需要比较的节点为(1+2+3+…+(n-1)+n)/n=(n+1)/2。

下面关于哈希查找的说法,不正确的是( )。
A.采用链地址法处理冲突时,查找一个元素的时间是相同的
B.采用链地址法处理冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的
C.用链地址法处理冲突,不会引起二次聚集现象
D.用链地址法处理冲突,适合表长不确定的情况

散列查找 散列表(哈希表)相关推荐

  1. hash table(全域散列法实现的哈希表)

    hash table(全域散列法实现的哈希表) 利用每次重建哈希表时随机生成散列函数 #ifndef C11LEARN_HASHUNIVERSAL_H #define C11LEARN_HASHUNI ...

  2. ds哈希查找—二次探测再散列_大白话之哈希表和哈希算法

    哈希表概念 哈希表(散列表),是基于关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数(哈希函数 ...

  3. 查找算法【哈希表】 - 散列查找及性能分析

    查找算法[哈希表] - 散列查找及性能分析 散列表虽然建立了关键字和存储位置之间的直接映像,但冲突不可避免,在散列表的查找过程中,有的关键字可以通过直接定址1次比较找到,有的关键字可能仍然需要和若干关 ...

  4. 哈希表(散列查找)(c/c++)

    通过哈希表进行查找的特点是:不需要比较关键字,而是通过哈希函数计算出关键字的位置.一般来讲,为了进行高效率的查找,要求哈希函数简单均匀.空间利用率高.关键字之间的冲突少. 关于散列查找的实现需要着重考 ...

  5. c语言散列表的构造和查找,简单的哈希表实现 C语言

    简单的哈希表实现 这是一个简单的哈希表的实现,用c语言做的. 原理 先说一下原理. 先是有一个bucket数组,也就是所谓的桶. 哈希表的特点就是数据与其在表中的位置存在相关性,也就是有关系的,通过数 ...

  6. 算法设计与分析——散列表/哈希表(Hash Table):直接寻址表

    分类目录:<算法设计与分析>总目录 相关文章: ·散列表/哈希表(Hash Table)(一):基础知识 ·散列表/哈希表(Hash Table)(二):直接寻址表 ·散列表/哈希表(Ha ...

  7. 数据结构与算法 ~ 查找 ~ 散列查找(哈希~线性探查法和二次探查法)

    数据结构与算法 ~ 查找 ~ 散列查找(哈希~线性探查法和二次探查法) /*search-hash*/ #include<math.h> #include<stdio.h> # ...

  8. “查找”学习提纲(二)——树型查找和散列查找

    文章目录 前言 代码模板 二叉排序/查找/搜索树查找 适用 性能 代码模板 折半查找和二叉排序树查找总结 平衡二叉(排序)树/AVL树 构造相应层数的树至少需要的结点数 平衡调整的过程 平衡调整的类型 ...

  9. PTA 查找(散列查找)

    散列查找: 根据散列函数确定关键词key的存储位置,将key存储在一张hash哈希表内,然后根据一定的规则(线性探测,平方探测,分离链接等)来规避相同key的数据之间的冲突. 如上图,散列表的性能和装 ...

最新文章

  1. CDesktopView类
  2. 模块化加载_Java9模块化的类加载机制实现剖析
  3. JQuery EasyUI datagrid 键盘上下控制选中行
  4. [Ext JS6]工作区-Workspace
  5. ECS服务器下挂载数据盘
  6. 【转】LPCTSTR,LPWSTR, PTSTR, LPTSTR区别
  7. 最新数据库排行出炉,SQL Server 暴跌。。
  8. 国民经济行业分类 GB/T 4754-2017 最新2017版 代码整理
  9. 转换PDF技巧1之PDF虚拟打印机操作详解
  10. 提供三份程序员简历模板
  11. 免费响应式html模板,值得收藏的25款免费响应式网页模板
  12. java xps生成_Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)...
  13. 未实施内容安全策略 (CSP)
  14. nyoj-506-洗澡
  15. 【Python爬虫】爬取新浪微博评论看网友如何评价NBA季后赛火箭VS爵士G3
  16. 复合材料力学_桥桂琼编_西工大版
  17. 20年的嵌入式经验:如何从零开始开发一款嵌入式产品(值得收藏的高质量文章!)...
  18. linux pam 版本号,Linux中pam板块详解
  19. CPU卡多级UID读取
  20. latex的恒等于怎么写?

热门文章

  1. Android之MVVM框架 - 数据绑定
  2. python数字从大到小排列_Python练习题 005:三个数字由大到小排序输出
  3. 日本第一赘婿!他入赘近20年拿下诺贝尔奖,成名后不忘教光棍讨老婆......
  4. 那些上海滩的金融传奇,或许都开始于一份PPT
  5. 为啥饮料瓶大都是圆的,牛奶盒却是方的?
  6. 女神一秒变路人!腾讯研究AI卸妆效果算法出品“一键卸妆”功能
  7. mysql 免安装初始化_mysql免安装版配置步骤详解分享
  8. 从mysql读取图片_如何从sql数据库内读取图片
  9. abb限位开关已打开drv1_广告雕刻机限位开关触发
  10. php 实现类,php如何实现类