【数据结构】——查找、散列表简答题模板

目录

  • 一、查找的概念
    • (一)静态查找和动态查找
    • (二)二分查找的适用情况
    • (三)查找算法中的监视哨
  • 二、散列查找
    • (一)同义词
    • (二)构造哈希函数
    • (三)散列查找的步骤
    • (四)冲突和解决冲突
  • 三、树形查找
    • (一)二叉搜索树的定义
    • (二)平衡二叉搜索树的定义
    • (三)平衡二叉搜索树结点的个数

一、查找的概念

(一)静态查找和动态查找

1、简述静态查找和动态查找的概念,并举例相应的查找名称。

:查找某个特定元素是否在表中和它的相关属性称为静态查找,例如顺序、折半、分块、散列查找等;若在查找过程中需要插入或删除查找表的元素,则为动态查找,例如树形查找中的二叉搜索树、平衡二叉树、B树等。

(二)二分查找的适用情况

1、什么情况下可以采用二分查找?若数据元素的个数为n,则查找成功的平均查找长度是多少?

:二分(折半)查找要求线性表必须采用顺序存储结构,且表中元素按关键字有序排列,由于在二分判定树中,比较次数最多不会超过树的高度h=⌈log2(n+1)⌉,即二分查找成功的平均查找长度为O(log2n)。

2、对于一个有序顺序表来说,折半查找是否任何时候都比顺序查找快?为什么?

:并不是,只是一般情况下折半查找比顺序查找快,因为折半查找每次比较都可以排除一半的元素,从而减少了查找时间。例如,若要查找的元素为顺序表的第一个元素,则通过顺序查找会比折半查找快。

(三)查找算法中的监视哨

1、在很多查找和排序算法中,经常使用“监视哨”,其目的是什么?

:监视哨的作用是免去了查找过程中每次都要检测整个表是否查找完毕,提高了查找效率。

二、散列查找

(一)同义词

1、在采用线性探测法处理冲突的散列表中,所有同义词在表中是否一定相邻?

:不一定相邻。因为发生了冲突,即出现两个不同的关键字被哈希函数散列到同一个地址的情况,都争夺哈希地址。

(二)构造哈希函数

1、简述构造哈希函数的常用方法。

:简述构造哈希函数的常用方法有以下:
(1)直接定址法:选取关键字或关键字的某个线性函数值为哈希地址;
(2)除留余数法:选取关键字除以某个整数的余数作为哈希地址,即通过取余运算得到的余数作为哈希地址;
(3)平方取中法:取关键字平方的中间几位作为哈希地址;
(4)折叠法:将关键字分割成位数相同的几段,然后叠加求和作为哈希地址。

2、如何衡量Hash函数的优劣?

:评价Hash函数的优劣有:能否将关键字均匀影射到哈希空间上,有无好的解决冲突的方法,计算哈希函数是否简单高效等。另外,一个好的哈希函数可以减小冲突,但不可能避免冲突。

(三)散列查找的步骤

1、假设已按散列函数H和冲突处理方法R建立了散列表,试写出散列查找的步骤。

:设查找哈希表的关键字KEY,首先通过散列函数计算地址,然后用关键字KEY与该地址的关键字进行比较,若当前地址为空,则查找失败;若相同,则查找成功;若不同,则通过冲突处理方法R得到下一个地址进行比较,直到相同为止,其中若按照冲突处理方法R得到的新地址又比较为空,则证明查找失败。

(四)冲突和解决冲突

1、简要叙述hash表技术中的冲突概念,并指出三种解决冲突的方法。

:两个不同的关键字被哈希函数散列到同一个地址的情况则称为冲突,解决冲突的方法有线性探查法、平方探查法、双散列法、链地址法等等。

三、树形查找

(一)二叉搜索树的定义

1、什么是二叉搜索树?

:用于查找的二叉树,其中每个结点的值不小于左子树结点的值,不大于右子树结点的值。

(二)平衡二叉搜索树的定义

1、什么是平衡二叉搜索树?有哪些动态平衡调整操作?

:平衡二叉树以二叉搜索树为基础,若二叉搜索树中左、右子树的高度之差的绝对值不超过1,则称为平衡二叉树,其左、右子树也为一棵平衡二叉树。有以下动态平衡调整操作:
①左单旋转LL;
②右单旋转RR;
③先左后右双旋转LR;
④先右后左双旋转RL。

(三)平衡二叉搜索树结点的个数

1、一棵具有m层的AVL树至少有多少个结点,最多有多少个结点?

:一棵具有 m 层的平衡二叉树(AVL),最多有2m-1个结点,另外,由斐波那契数列(Fibonacci),可得最少有f(m) = f(m-1) + f(m-2) + 1个结点,其中f(1) = 1 、f(2) = 2、f(3) = 4。

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

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

相关文章

2024年视频监控行业发展趋势预测及EasyCVR视频分析技术应用

随着技术的改进,视频监控领域在过去十年迅速发展。与此同时,该行业正在通过先进创新技术(如人工智能和云计算等技术)的积极商业化,获得了新的增长机会。视频监控系统不再仅仅用于记录图像,而是已经成为全球…

力扣题目学习笔记(OC + Swift) 12. 整数转罗马数字

12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XI…

LVM异常分析

环境信息 硬件环境 软件环境 相关软件包 云上鲲鹏RH220 操作系统:麒麟V10sp1-0711 系统自带多路径:multipath-tools-0.8.4-6 光纤连接华为存储Oceanstor18500 v5 内核版本:4.19.90 故障描述 云上鲲鹏RH220安装系统麒麟V10sp1-071…

ssm+vue的高校智能培训管理系统分析与设计(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的高校智能培训管理系统分析与设计(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#xff09…

npm ,yarn 更换使用国内镜像源,阿里源,清华大学源

在平时开发当中,我们经常会使用 Npm,yarn 来构建 web 项目。但是npm默认的源的服务器是在国外的,如果没有梯子的话。会感觉特别特别慢,所以,使用国内的源是非常有必要的。 在这里插入图片描述 Nnpm, yarn …

vue+react题集整理

1.Typescript中 interface 和 type 的差别是什么? interface只能用来描述对象类型 type可以描述任何类型组合 type后边需要有 interface后边没有 当多次使用相同名称定义一个 interface 时,它们会自动合并为一个接口。同名属性的不能进行类型覆盖修改&am…

1130 - Host “WIN-CA4FHERGO9J‘ is not allowed to connect to this MySQL server

1、知识小课堂 1.1 Mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational Database Management System&am…

elementui + vue2实现表格行的上下移动

场景&#xff1a; 如上&#xff0c;要实现表格行的上下移动 实现&#xff1a; <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…

GEE(ccdc)——连续变化检测和分类 (CCDC)概述

连续变化检测和分类 (CCDC) 1 背景 1.1 土地变化监测 土地覆盖变化影响自然和人为环境,被全球气候观测系统视为基本气候变量。例如,荒漠化导致土地覆盖从植物生态系统转变为沙漠,森林砍伐导致森林转变为人类改变的土地用途,城市发展可以将自然环境转变为被建筑物和道路覆…

MVVM和MVC以及MVP的原理以及它们的区别

MVVM、MVC 和 MVP 都是前端架构模式&#xff0c;它们各自有不同的原理和特点。 MVC&#xff08;Model-View-Controller&#xff09; 原理&#xff1a;MVC 将应用程序分为三个部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&a…

antd+vue:tree组件:父级节点禁止选择并不展示选择框——基础积累

antdvue:tree组件&#xff1a;父级节点禁止选择并不展示选择框——基础积累 1.判断哪些是父节点&#xff0c;给父节点添加disabled属性——this.permissionList是数据源2.通过css样式来处理disabled的父节点3.完整代码如下&#xff1a; 最近在写后台管理系统的时候&#xff0c;…

[GXYCTF2019]Ping Ping Ping (文件执行漏洞)

本题考点&#xff1a; 1、命令联合执行 2、命令绕过空格方法 3、变量拼接 1、命令联合执行 ; 前面的执行完执行后面的| 管道符&#xff0c;上一条命令的输出&#xff0c;作为下一条命令的参数&#xff08;显示后面的执行结果&#xff09;|| 当前面的执行出错时&#xff08;为…

从计时器失效到判断页面可见性

目录 1&#xff0c;问题 - 计时器失效2&#xff0c;解决 - 页面可见性判断1&#xff0c;页面可见性2&#xff0c;visibilitychange3&#xff0c;终极解决方案 - lifecycle 3&#xff0c;精准计时 1&#xff0c;问题 - 计时器失效 问题复现&#xff1a;移动端必现&#xff0c;p…

BMS常见名词解释

&#xff08;1&#xff09;阻抗&#xff1a;在具有电阻、电感和电容的电路里&#xff0c;对电路中的电流所起的阻碍作用叫作阻抗。阻抗常用Z表示&#xff0c;是一个复数&#xff0c;实部称为电阻&#xff0c;虚部称为电抗。电容在电路中对交流电所起的阻碍作用称为容抗 ,电感在…

C#winform实现单页面自由切换窗口

一、介绍 这是效果图&#xff0c;由于视频压缩画质很差&#xff0c;看个效果就好。 左侧是打开界面的按钮&#xff0c;点击左侧按钮右侧打开不同窗口&#xff0c;点击右侧窗口中的按钮&#xff0c;也可以切换页面&#xff0c;可以方便的进行返回、下一页等操作。 每个窗口打开…

JavaSE语法之七:封装

文章目录 一、封装的概念二、访问限定符三、封装扩展之包1. 包的概念2. 导入包中的类3. 自定义包4. 常见的包 四、实现封装五、static成员1. 再谈学生类成员变量2. static修饰成员变量3. static修饰成员方法4. static成员变量初始化 六、代码块1. 代码块概念及其分类2. 普通代码…

香槟过了保质期还能喝吗?

香槟是起泡酒的高级代表&#xff0c;是浪漫和喜庆的化身&#xff0c;它浑身上下都散发着无穷的魅力。那么&#xff0c;这么精贵的葡萄酒有没有保质期&#xff0c;会不会变质呢&#xff1f;云仓酒庄的品牌雷盛红酒分享当然会。一瓶酒的生命离不开它的保存期限&#xff0c;酒的质…

理解Socket

前言 我在去年就学习过Java中Socket的使用&#xff0c;但对于Socket的理解一直都是迷迷糊糊的。看了网上很多关于Socket的介绍&#xff0c;看完还是不太理解到底什么是Socket&#xff0c;还是很迷。直到最近在学习计算机网络&#xff0c;我才对Socket有了一个更深地理解。之前一…

HBuilder X

选择一款编程软件有以下几个好处&#xff1a; &#xff08;1&#xff09;提高效率&#xff1a;编程软件通常强调代码编辑和自动完成&#xff0c;可以帮助程序员更快速、更准确地输入代码。 &#xff08;2&#xff09;降低错误率&#xff1a;编程软件还可以检测代码中的错误&a…

spring事务(3)基于XML的声明式事务

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…