当前位置: 首页 > news >正文

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

一、
在这里插入图片描述
顺序查找的平均查找长度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次。

相关文章:

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

一、 顺序查找的平均查找长度ASL(1 2 …… n)/ n (n 1)/ 2 二、 这半查找法的平均查找次数和判定树的深度有关系。若查找一个不存在的元素,说明进行了深度次比较。 注意,判定树不是满二叉树,因此深…...

Optional详解和常用API

目录 一、Optional简介 二、构建Optional对象三种方式 2.1 Optional.of(value) 2.1.1 使用案例 2.2 Optional.ofNullable(value) 2.2.1 使用案例 2.3 Optional.empty() 2.3.1 使用案例 三、Optional常用的api解析和使用案例 3.1 isPresent 3.1.1 使用案例 3.2 ifPrese…...

Unity 3D 物体的Inspector面板

1、Transform:位置、旋转、大小 2、Mesh Filter:物体的形状 3、Mesh Renderer:物体渲染(物体的衣服) 4、Collider:碰撞体...

闪烁与常亮的符号状态判断机制(状态机算法)

背景说明 在视觉项目中,经常要判断目标的状态,例如:符号的不同频率闪烁、常亮等。然而常规的视觉算法例如YOLO,仅仅只能获取当前帧是否存在该符号,而无法对于符号状态进行判断,然而重新写一个基于时序的卷积…...

Hyper-V如何将文件复制到虚拟机?教您3个简单的方法!

需要将文件复制到虚拟机! “大家好,有谁知道Hyper-V怎么将文件复制到虚拟机吗?我有一些文件,想要从主机中复制进虚拟机中,但是我不知道该怎么操作,有谁可以帮帮我吗?谢谢。” Hyper-V虚拟机可…...

Vue主要使用-03

组件通讯 组件通讯也是我们需要了解的,在我们的实际开发中,我们使用的非常多,比如父组件内的数据传入到子组件,子组件的数据传入到父组件,什么是父组件什么是子组件?父组件内包含着我们的子组件,我们的父组件可以有多个子组件,父组件就是我们使用子组件拼接的。 …...

LoadBalance客户端负载均衡

1. 前言Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时&#xff0…...

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…...

逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第84讲。 逢3必过报数游戏&…...

解决Qt的multimedia库在clion中依赖库补全的问题

解决Qt的multimedia库在clion中使用报错的问题 在clion中,使用Qt的multimedia库时会报如下错误: defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" 我猜测出现这个错误的原因很可能是因为…...

图像处理:Python使用OpenCV进行图像锐化 (非锐化掩模、拉普拉斯滤波器)

文章目录 非锐化掩模 (Unsharp Masking)拉普拉斯滤波器 (Laplacian Filter)效果对比总结 在图像处理中,锐化操作用于增强图像的边缘和细节,使图像看起来更清晰。常见的图像锐化方法包括非锐化掩模(Unsharp Masking)和拉普拉斯滤波…...

windows用脚本编译qt的项目

mingw的 cd build ::设置jom环境 set PATHC:\Qt\Qt5.15.2\Tools\mingw810_32\bin;%PATH% set PATHC:\Qt\Qt5.15.2\5.15.2\mingw81_32\bin;%PATH% ::设置Qt环境 amd64_x86 或者 amd64 ::CALL "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxilia…...

mybatis-plus使用拦截器实现sql完整打印

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 在使用mybatis-plus(mybatis)的时候,往往需要…...

GPT-4并非世界模型,LeCun双手赞同!ACL力证LLM无法模拟真实世界

一直以来,支持LLM的观点之一是模型可以集成海量事实知识,作为通往「世界模拟器」的基础。虽然也有不少反对意见,但缺乏实证依据。那么,LLM能否作为世界模拟器? 最近,亚利桑那大学、微软、霍普金斯大学等机构…...

第 6 章: Spring 中的 JDBC

JDBC 的全称是 Java Database Connectivity,是一套面向关系型数据库的规范。虽然数据库各有不同,但这些数据库都提供了基于 JDBC 规范实现的 JDBC 驱动。开发者只需要面向 JDBC 接口编程,就能在很大程度上规避数据库差异带来的问题。Java 应用…...

[C++ STL] vector 详解

标题:[C STL] vector 详解 水墨不写bug 目录 一、背景 二、vector简介 三、vector的接口介绍 (1)默认成员函数接口 i,构造函数(constructor) ii,析构函数(destructor&#xff0…...

PHP简约轻型聊天室留言源码

无名轻聊是一款phptxt的轻型聊天室。 无名轻聊特点: 自适应电脑/手机 数据使用txt存放,默认显示近50条聊天记录 采用jqueryajax轮询方式,适合小型聊天环境。 访问地址加?zhi进入管理模式,发送 clear 清空聊天记录。 修改在…...

代码随想录算法训练营day23|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669.修剪二叉搜索树 这道题目需要考虑当前节点是否在[low,high]之间, 因为是平衡二叉树, 所以当当前节点值小于low时,那么其左节点肯定更小,因此删除该节点的方式是给root节点返回其右节点的递归,注意:这里…...

实时通信websocket和sse

microsoft/fetch-event-source是一个JavaScript库,用于处理服务器发送的事件(Server-Sent Events,简称SSE)。它提供了一个简单易用的API,使得客户端可以与服务器进行实时通信。这个库主要用于浏览器环境 安装依赖npm i…...

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

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

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...