【408数据结构】散列 (哈希)知识点集合复习考点题目

news2024/12/23 17:31:48

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家


  

知识点

1. 散列查找

散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(O(1)),但最坏情况下可能会退化到(O(n))。

也称作哈希表,一种数据结构。
数据元素的关键字与其存储地址直接相关
如果通过散列函数映射到同一个为止,则为 冲突

装填因⼦α = 散列表长度m /表中记录数n

3. 散列函数

散列函数是散列存储的核心,其设计需要考虑关键字的分布情况和冲突概率。

  • 散列查找是典型的"用空间换时间"的算法,只要散列函数设计的合理,散列表越长,冲突的概率越
  • 除留余数法,即H(key) = key % p
  • 直接定址法
    H(key) = a * key + b

    适合关键字分布基本连续的情况,如果关键字不连续,空位太多会造成存储空间的浪费
  • 数字分析法

    选取分布较为均匀的若干位作为散列地址
  • 平方取中法

    取关键字的平方值的几位作为散列地址。

    适合散列地址与关键字的每位都有关系

4. 冲突处理

冲突是散列存储中不可避免的问题。处理冲突的方法主要有开放定址法和链地址法。开放定址法通过在表中寻找空闲位置来解决冲突,而链地址法则通过将具有相同散列地址的元素链接成一个链表来处理冲突。

  • 开放地址法:
    线性探测法

      发生冲突的时候,每次往后探测相邻的下一个单元是否为空

      进行查找的时候,通过散列函数得到Hi并依次比较,如果遇到空则说明查找失败

      删除结点不能简单的将被删结点的空间置为空,否则将阶段在它之后填入散列表的同义词的查找路径,而可以做一个删除标记进行逻辑删除
  • 平方探测法比起线性探测表更不容易产生聚集堆积问题
  • 伪随机序列法
      一个伪随机序列

题目

1. 散列查找的缺点是什么?

解答:
散列查找的缺点主要表现在以下几个方面:

  1. 可能会产生冲突,需要解决冲突的方法。
  2. 冲突处理方法(如链地址法)会增加额外的空间开销。
  3. 在最坏情况下(所有元素都冲突),查找时间复杂度会退化到 (O(n))。

2. 什么是散列存储?

解答:
散列存储是一种数据结构,它根据关键码值(Key Value)直接进行访问。通过Hash函数将要查找的项与表的一个位置关联,以加快查找的速度。它是一种“用空间换时间”的算法,只要散列函数设计的合理,散列表越长,冲突的概率越低。

3. 散列存储适用于什么情况?

解答:
散列存储适用于以下情况:

  1. 数据量大,且查找操作较多。
  2. 可以接受一定程度的冲突。
  3. 需要快速查找、插入和删除操作。

4. 散列查找的时间复杂度与什么有关?

解答:
散列查找的时间复杂度主要与以下因素有关:

  1. 散列表的长度(m):散列表越长,冲突的概率越低。
  2. 冲突概率:冲突越少,查找效率越高。
  3. 散列函数的设计:合理的散列函数可以减少冲突,提高查找效率。

5. 散列函数的设计需要考虑哪些因素?

解答:
散列函数的设计需要考虑以下因素:

  1. 关键字的分布情况:散列函数应该能够将关键字均匀地分布在散列表中,减少冲突。
  2. 冲突概率:设计散列函数时应该尽量减少冲突的概率。
  3. 计算效率:散列函数的计算应该尽可能简单高效,以减少查找和插入的时间。

6. 什么是开放地址法?

解答:
开放地址法是一种处理散列冲突的方法。当发生冲突时,它会选择一个开放的散列地址,将元素存入该地址。开放地址法的实现方式包括线性探测法、二次探测法和双重散列法等。

7. 什么是再散列?

解答:
再散列是一种解决哈希冲突的方法。当发生冲突时,通过一定的计算找到一个新的位置来存储数据。再散列可以提高散列表的查找效率,避免堆积现象。

8. 散列查找的平均查找复杂度是多少?

解答:
散列查找的平均查找复杂度是 (O(1))。这是因为在理想情况下,散列函数可以将关键字均匀地分布在散列表中,每个关键字只需要一次查找就可以找到对应的存储位置。

9. 散列表的空间复杂度是多少?

解答:
散列表的空间复杂度是 (O(n))。为了减少冲突,通常需要设计一个足够长的散列表,其长度与存储的元素数量成正比。

10. 如何解决哈希表中的冲突?

解答:
解决哈希表中的冲突的方法主要包括:

  1. 链地址法:将具有相同散列地址的元素存储在一个链表中。
  2. 开放地址法:当发生冲突时,选择一个开放的散列地址,将元素存入该地址。
  3. 再散列法:通过更换散列函数或调整散列表的大小来减少冲突


另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2115244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自我指导:提升语言模型自我生成指令的能力

人工智能咨询培训老师叶梓 转载标明出处 传统的语言模型,尤其是经过指令微调的大型模型,虽然在零样本(zero-shot)任务泛化上表现出色,但它们高度依赖于人类编写的指令数据。这些数据往往数量有限、多样性不足&#xf…

配置Java(JDK)环境变量

一、配置JDK环境变量 将JDK-22压缩包加压缩到指定目录下面,本机路径是:C:\Program Files\Java(可以加压缩到自己的指定路径,记住这个路径,配置环境变量时候要使用)。 鼠标右键“此电脑”,点击“…

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考 MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触…

Spring框架-----ioc

基本概念 Spring 是一个轻量级的,IOC和AOP的一站式Java 开发框架,是为了简化企业级应用开发而生的 轻量级:框架核心模块体积小 IOC:Inversion of Control(控制反转)把创建对象的控制权反转给Spring框架管理 以前我们程序中需要…

Linux下构建Docker镜像

Docker在Linux构建镜像 Docker是一种轻量级的容器化技术,可以让开发者将应用程序及其所有依赖项打包到一个独立的容器中,从而实现跨平台和快速部署,在Linux系统上,我们可以使用D0cker来构建自己的镜像,并且可以通过简…

RocketMQ学习(三)

文章目录 1. 高级功能1.1 消息存储1.1.1 存储介质关系型数据库DB文件系统 1.1.2 性能对比1.1.3 消息的存储和发送1)消息存储2)消息发送 1.1.4 消息存储结构1.1.5 刷盘机制1)同步刷盘2)异步刷盘3)配置 1.2 高可用性机制…

软件设计之JavaWeb(1)

软件设计之JavaWeb(1) 此篇应在MySQL之后进行学习: 路线图推荐: 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷全新JavaWeb教程,企业主流javaweb技术栈 资料可以去尚硅谷官网免费领取 此章节最好学完JDBC观看 学习内容: XML概述T…

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是…

解决浏览器自动将http网址转https

删除浏览器自动使用https的方式 在浏览器地址栏输入:chrome://net-internals/#hsts PS:如果是edge浏览器可输入:edge://net-internals/#hsts 在Delete domain security policies搜索框下,输入要删除的域名,然后点击delete 解决方法&#…

VMware中共享文件夹没了怎么办?

1.进入root su root 需要提前设置密码 sudo passwd root 2.创建一个hgfs文件夹,share就在这里面 sudo mkdir /mnt/hgfs/ 3.输入下面的命令 sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 4.然后就能找到share文件夹了,注意每…

CCF推荐B类会议和期刊总结(计算机网络领域)

CCF推荐B类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的B类会议和期刊代表了该领域的较高水平。以下是对所有B类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属…

串口通信协议(UART)

简介 uart通讯协议,是一种成本低、容易使用、通信线路简单,可实现两个设备的互相通信的协议;是一种全双工,设备点对点通信的协议。下面从硬件电路、电平标准和串口参数等方面来了解uart通信协议。 硬件电路 硬件电路非常简单&am…

如何限制与管控员工上网行为?五个管控方法让员工效率倍增!

在现代企业中,互联网是工作中不可或缺的工具,但与此同时,员工在工作时间浏览与工作无关的网站、进行网络娱乐等行为,也成为了影响企业生产力和效率的主要因素之一。如何有效限制和管控员工的上网行为,从而提升工作效率…

利士策分享,逆境破局关键:精准策略

利士策分享,逆境破局关键:精准策略 在人生的征途上,逆境如同试炼场,考验着我们的智慧与勇气。 为了在这片试炼场上稳健前行,我们需要一套具体而精准的应对策略。 以下,是结合实践经验与智慧总结的应对策略…

机器意识的可能性:从计算功能主义到生物自然主义的思考

引言 近年来,人工智能(AI)的飞速发展引发了关于机器能否具备意识的激烈讨论。这个话题不仅涉及技术层面的挑战,还触及了哲学和神经科学的基本问题。Anil Seth教授作为意识研究领域的权威,他在近期发表的论文中提出了一…

ESP32-驱动ST7789显示

前言 一、TFT_eSPI库的安装 二、TFT_eSPI 的设置 1.文件的路径 2.User_Setup.h的设置 4.连线 三.显示 总结 前言 环境: 芯片:ESP32 软件:Arduino 一、TFT_eSPI库的安装 1.安装TFT_eSPI库,安装时注意安装内容不要错了 如果提示还有…

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注…

论文阅读:AutoDIR Automatic All-in-One Image Restoration with Latent Diffusion

论文阅读:AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion 这是 ECCV 2024 的一篇文章,利用扩散模型实现图像恢复的任务。 Abstract 这篇文章提出了一个创新的 all-in-one 的图像恢复框架,融合了隐扩散技术&#x…

Rust : 从事量化的生态现状与前景

Rust适不适合做量化工作? 一般地认为,目前大部分场景策略开发最佳是Python;策略交易和部署是C。但还是有人会问,Rust呢? 这个问题不太靠谱! 适不适合做一件事情,本身就是一件主观的事。即使是…