北航第六次数据结构与程序设计作业(查找与排序)选填题

一、
在这里插入图片描述
顺序查找的平均查找长度ASL=(1 + 2 + …… + n)/ n = (n + 1)/ 2


二、
在这里插入图片描述
这半查找法的平均查找次数和判定树的深度有关系。若查找一个不存在的元素,说明进行了深度次比较。

注意,判定树不是满二叉树,因此深度和结点个数之间并不存在必然的数学关系。
但是我们可以根据满二叉树h=log(n+1)大概估计一下,如果是三层的满二叉树,那么n为7,如果是4层的满二叉树,则n为15。因此,本题的判定树一定是5层,因此最多比较五次。

判定树具体形态为:

在这里插入图片描述


三、
在这里插入图片描述ASL=每i层结点个数*i (累积和)/ 长度
判定树形态为:
在这里插入图片描述
则总的长度为:(1 * 1 + 2 * 2 + 4 * 3 + 2 * 4)=(1 + 4 + 12 + 8)=25


四、
在这里插入图片描述
判定树形态:
在这里插入图片描述要小心:题目中说了,是访问元素的下标,因此,访问路径的元素为10,16,12,下标为4,7,5


五、
在这里插入图片描述①显然不对,没有考虑到叶子结点
②对
③对
④只有当插入数据导致结点分裂,而且分裂至根结点的数据个数也超过m-1个的时候,树才长高一层


六、
在这里插入图片描述
19%13=6,84%13=6
14%13=1,1%13=1,27%13=1,79%13=1
23%13=10,10%13=10
68%13=3,55%13=3
20%13=7
11%13=11

因此,余数为1的有4个,也就是散列地址为1的链中有4个记录


七、
在这里插入图片描述原大堆为:
在这里插入图片描述插入18后:
在这里插入图片描述
注意注意,看看题目问的是:比较的次数,而不是18交换的次数,18先和10比较,发现18比10大。那就18和10交换位置,然后再和25比较,发现25比18大,因此不交换。


八、
在这里插入图片描述选择排序每次选一个最小的放在当前序列的最左边,位置确定。

冒泡先把最大的冒到最后,再把次大的冒到倒数第二,位置也是确定的。

归并大家先想一个这个情景:考试的时候,1班的第一名一定是全年级第一名吗?未必对吧?归并排序和这个情况一样,你是你子序列中的最值,但是和相邻子序列归并之后就未必是了

堆排序每次都把最大的元素即堆顶和当前堆的最后一个元素交换,因此位置也确定。


九、
在这里插入图片描述
我们发现,每次都是当前序列的最小元素和当前未排序序列第一个元素交换,很明显的选择排序


十、
在这里插入图片描述
冒泡的话,前两趟跑完之后,最大和次大,即23和13应该排在最后

插入排序,第i趟排序结束以后,前i+1个元素是有序的,此题满足

选择排序肯定先把最小的放到前面俩

归并肯定也不是,因为第三第四的大小关系不对,第七第八也不对


十一、
在这里插入图片描述选择排序,选最小的,放第一个,13和49交换,明显A


十二、
在这里插入图片描述
你猜猜qsort函数第一个参数为啥是数组名


十三、
在这里插入图片描述
考试问你时间复杂度,你就看ppt就行了。。。反正开卷


十四、
在这里插入图片描述第一次,16和6交换:
在这里插入图片描述
30和10交换:
在这里插入图片描述28和4交换:
在这里插入图片描述4和key12交换
在这里插入图片描述明显,选C


十五、
在这里插入图片描述找找,那一组里,没有两个元素,左边都比他小,右边都比他大
A.2的左边都比他大,9的左边都比他小,可以
B.同A
C.9到时可以,但找不出另一个
D.5的左边都比他小,右边都比他大;9的左边都比他小


十六、
在这里插入图片描述由题可知,前6个元素已经排好序,那么排好序的结果应该是:
13 38 49 65 76 97 47 50
第一次和49比,第二次和38比,第三次和13比


十七、
在这里插入图片描述查找每个元素,这个元素都要被比较,那就只能是判定树的根节点了
(1+99)/ 2 =50


十八、
在这里插入图片描述
看好了,是在序列中的位置,不是下标,位置从1开始,下标从0开始
判定树的根结点为第(1+12)/2=6,根结点右子树的根结点的位置为(7+12)/ 2=9。


十九、
在这里插入图片描述
发生冲突,说明余数一致,说明能整除,放眼观去,63,9,45都能整除,因此3个和18冲突


二十、
在这里插入图片描述
从arr[1]到arr[n-1],如果本身就递增,那么每个元素只跟自己的直接前驱元素比较一次就行,那么比较了n-1次。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

创新案例 | 3个关键策略:乳制品品牌认养一头牛如何通过私域流量运营获取1400万会员

探索认养一头牛如何运用创新的私域流量运营策略,在竞争激烈的乳制品市场中脱颖而出,实现会员数量的飞速增长至1400万。本文深入分析了其数据驱动的广告投放、高效的会员运营体系和创新的用户互动机制,为企业提供提升用户粘性和品牌忠诚度的宝…

Postgre 调优工具pgBadger部署

一,简介: pgBadger(日志分析器)类似于oracle的AWR报告(基于1小时,一天,一周,一月的报告),以图形化的方式帮助DBA更方便的找到隐含问题。 pgbadger是为了提高…

嵌入式数据库的一般架构

嵌入式数据库的架构与应用对象紧密相关,其架构是以内存、文件和网络等三种方式为主。 1.基于内存的数据库系统 基于内存的数据库系统中比较典型的产品是每个McObject公司的eXtremeDB嵌入式数据库,2013年3月推出5.0版,它采用内存数据结构&…

【Java】过滤器/拦截器

文章目录 两者区别request链路全过程 在实际开发中,过滤器和拦截器都是经常使用的技术,但一被提及到其区别时,整个人就愣住了,好像没有认真地对两者进行区别和总结,这两者之间也确实很容易混淆,因此结合了很…

python读取excel导入数据库

一、环境准备,安装包 pip install pandas openpyxl sqlalchemy二、数据准备 三、代码编写 from sqlalchemy import create_engine import pandas as pdclass GDPDataImporter:def __init__(self, db_type, dbapi, host, port, database, username, password):&quo…

【Git】基础操作

初识Git 版本控制的方式: 集中式版本控制工具:版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或者互联网。个人修改之后要提交到中央版本库 例如:SVM和…

Python(二)---数据类型与变量、以及运算符

文章目录 前言1.Python程序的构成1.1.代码的组织和缩进1.2.使用\行连接符 2.对象和引用、标识符规则2.1.对象2.2.引用2.3.标识符规则 3.变量和简单赋值语句3.1.变量的声明和赋值3.2.删除变量和垃圾回收机制3.3.常量3.4.链式赋值3.5.系列解包赋值 4.最基本内置数据类型4.1.数字和…

rclone 上传资料到 onedrive 遇到限速问题解决

原因分析 可能和脚本参数设置有关系,我的参数是: rclone copy "F:\阿里云盘\6666\局域网" "od:影视" --ignore-existing -u -v -P --transfers20 --ignore-errors --buffer-size128M --check-first --checkers10 --drive-acknowledge-abuse差不多8G大小的…

C#——值类型和引用类型的区别详情

值类型和引用类型的区别 值类型 值类型: 常用的基本数据类型都是值类型:bool 、char、int、 double、 float、long 、 byte 、ulong、uint、枚举类型、 结构体类型等特点: 在赋值的过程当中,把值的本身赋值给另一个变量,再修改…

关于STM32上用HID HOST调鼠标数据的解析

一、前言 关于这章主要是基于我前面的那篇文章 链接: 关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版) https://blog.csdn.net/qq_29187987/article/details/139535648?spm1001.2014.3001.5501 引用的文章的简介 引用的这篇文…

FFmpeg编解码的那些事(3)-视频硬解码的基础知识

目录 前言: 1.iso/os x平台 2.windows平台 3.linux平台 4.Tips: 5.结论: 前言: 视频硬解码的过程就是把视频提取成图片变显示出来,就是播放器播放视频的过程,就可以理解为解码的过程。 在不同的系统…

微信同声传译小程序插件使用教程

微信同声传译小程序插件 —— 机器翻译、智能语音 案例可搜索“一起学英语鸭”小程序查看, 实现效果如下图: 插件功能 语音转文字 语音合成 文本翻译 step 1:添加插件 在使用前,需要登录官网 设置 → 第三方服务 → 添加插件…

UniApp+Vue3使用Vant-微信小程序组件

第一步:打开创建好的UniappVue3的项目 第二步:下载Vant-Weapp npm i vant/weapp -S --production 第三步:修改目录名称 wxcomponents 必须是wxcomponents 第四步:将下载好的vant中的dist目录剪切到当前wxcomponents目录下 第五…

(超详细)基于动态顺序表实现简单的通讯录项目

前言: 我们在上一章节用c语言实现了线性表中的的动态顺序表,那么顺序表就只是顺序表吗?当然不是,使用顺序表结构可以实现很多项目,许多项目的数据结构都会用到顺序表,本章节我们就要使用顺序表实现一个简易…

数值分析笔记(二)函数插值

函数插值 已知函数 f ( x ) f(x) f(x)在区间[a,b]上n1个互异节点 { x i } i 0 n \{{x_i}\}_{i0}^{n} {xi​}i0n​处的函数值 { y i } i 0 n \{{y_i}\}_{i0}^{n} {yi​}i0n​,若函数集合 Φ \Phi Φ中函数 ϕ ( x ) \phi(x) ϕ(x)满足条件 ϕ ( x i ) y i ( i …

论文阅读:RAM++ | Open-Set Image Tagging with Multi-Grained Text Supervision

发表时间:2023年11月16 论文地址:https://arxiv.org/pdf/2310.15200 项目地址:https://github.com/xinyu1205/recognize-anything Recognize Anything Plus Model(RAM),这是一种有效利用多粒度文本监督的开…

课时154:项目发布_手工发布_手工发布

1.2.3 手工发布 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 为了合理的演示生产环境的项目代码发布,同时又兼顾实际实验环境的资源,我们这里将 B主机和C主机 用一台VM主机来实现,A主机单…

电路笔记 :LM3481MM/NOPB升压模块,升压电路原理

LM3481MM/NOPB LM3481MM/NOPB 是德州仪器(Texas Instruments)的一款广泛应用的DC-DC控制器,常用于电源管理应用,特别是在需要升压(boost)、反激(flyback)、SEPIC或反向配置的场合。…

【Ardiuno】实验使用OPT语音模块播放语音(图文)

当我们需要在程序中播放语音内容时,就需要使用到语音模块,今天我们就来实验一下使用OPT语音模块来方法语音。 const int voicePin 5; const int voiceBusyPin 18; const int testLEDPin 2;unsigned long pmillis 0;int busyVal 0; …

Go源码--sync库(3):sync.Pool(2)

回收 回收其实就是将 pool.local 置为空 可以让垃圾回收器回收 我们来看下 源码 func init() {// 将 poolCleanup 注册到 gc开始前的准备工作处理器中在 STW时执行runtime_registerPoolCleanup(poolCleanup) }这里注册了清理程序到GC前准备工作 也就是发生GC前需要执行这段代…