数据结构与算法第八套试卷

1.建立一个长度为n的有序单链表的时间复杂度

0(n^2)
在这里插入图片描述

2.哈希算法

key%p:p最好为质数
在这里插入图片描述
如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词(正确);

3.二分查找

注意: 二分查找是向下查询的
在这里插入图片描述
二分查找,因为它是顺序表,所以直接 1.(1+14)/2=7>4 r=6 2.(1+6)/2=3<4 l=4 3.(4+6)/2=5>4 r=4 (4+4)/2=4 7 3 5 4

4.DFS和BFS

深度优先遍历的思想类似于树的先序遍历。其遍历过程可以描述为:从图中某个顶点v出发,访问该顶点,然后依次从v的未被访问的邻接点出发继续深度优先遍历图中的其余顶点,直至图中所有与v有路径相通的顶点都被访问完为止;
在这里插入图片描述
BFS是根据节点的与节点之间的距离长度来的——>先遍历与顶点a邻接的顶点,因此前面是abce,直接排除ACD,选B

5.快速排序(补)

当数列越无序,快速排序的时间复杂度越低,最低为0(nlogn)
快速排序在基本有序的时候算法时间复杂度是最坏的,此时为0(n^2)
在这里插入图片描述

6.数据结构

1.线性结构是一个有序数据元素的集合。 其中数据元素之间的关系一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
常用的线性结构有:线性表,栈,队列,双队列,数组,串。

2.非线性结构中各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系。根据关系的不同,可分为层次结构和群结构。
常见的非线性结构有:二维数组,数组,广义表,树(二叉树等),图。(其中数组是由多个一维数组组成的,所以不再是线性结构)

7.链表

非空的双向循环链表中任何结点的前驱指针不为空。(正确)

8.希尔排序

在这里插入图片描述
(49,13,27,50,76,38,65,97)
在这里插入图片描述

9.树的遍历:

A
在这里插入图片描述
在这里插入图片描述

10.最小生成树:

在这里插入图片描述
【答案】n - 1
连通图:无向图中,对于图中任意两个顶点之前有路径,则称此图为连通图。n个顶点构成连通图它的边有多种可能,不使用图的边数来计算最小生成树的变数。
生成最小生成树需要包含图中各点,因此连接的边数为n - 1

11.堆的定义:

在这里插入图片描述

在这里插入图片描述

大题

1.统计二叉树中节点的个数

int count=0;
void math_count(Bitree* bt,int *count){
  //1.base:当前节点不为空,+1
  if(bt==NULL){
    return;
  }
  //2.前序位置:节点数+1
  *count++;
  //3.递归当前根节点的左右子树
  math_count(bt->lchild,count);
  math_count(bt->rchild,count);
}

2.选择排序

void select_sort(Node* head){
  Node* current=head;
  while(current){ //选择外层节点
    Node* temp=current->next; //内层比较节点
    while(temp){
       if(temp->data<current->data){
         int temp_data=current->data;
         current->data=temp->data;
         temp->data=temp_data; 
       }
       temp=temp->next; //内层指针更新
    }
    current=current->next;
  }
}

3.插入排序

void insert_sort(int[]nums){
   //1.插入排序是从第二个元素开始的
   for(int i=1;i<nums.length;i++){
     int j=i;
     //2.从后往前遍历,将元素插入到合适的位置
     while(j>0&&nums[j]<nums[j-1]){
       //交换
       int temp=arr[j-1];
       arr[j-1]=arr[j];
       arr[j]=temp;
       j--;  
     }
   } 
}

4.节点所在层数

int level=0;
//寻找target所在的层数
void math_level(Bitree* bt,int target){
   //1.base
   if(bt==NULL) return;
   level++;
   //2.前序:判断target在哪个位置
   if(bt->data==target) return; //当前根节点的data=target,return
   else if(bt->lchild&&bt->data>target) math_level(bt->lchild,target); //递归搜索当前节点的左子树
   else if(bt->rchild&&bt->data<target) math_level(bt->rchild,target); //递归右子树 
}

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

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

相关文章

【蓝桥杯单片机】十四届省赛“重难点”解析(附源码)

【蓝桥杯单片机】十四届省赛“重难点”解析 一、题目难点解析二、易出错点提示三、完整代码链接 笔记包括&#xff1a;①题目难点解析、②易出错点提示、③完整代码链接 注&#xff1a;本文提供的所有代码都是使用第十四届竞赛包完成 ⭐----------系列文章链接----------⭐ 【蓝…

C# 当录入错误的时候,右下角弹窗提示错误信息

做一个textbox录入数字的判断&#xff0c;当录入不是数字的时候右下角弹窗提示 右下角弹窗提示 主要代码如下&#xff1a;判断是否为数字的代码&#xff1a; private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar13) …

计算机网络——物理层(编码与调制)

计算机网络——编码与调制 基带信号和宽带信号编码与调制数字数据编码为数字信号非归零编码归零编码反向不归零编码曼彻斯特编码差分曼彻斯特编码4B/5B编码 数字数据调制为模拟信号模拟数据编码为数字信号模拟数据调制为模拟信号 我们之前讲了物理层的一些基础知识和两个准则&a…

音频的录制及播放

在终端安装好pip install pyaudio&#xff0c;在pycharm中敲入录音的代码&#xff0c;然后点击运行可以在10s内进行录音&#xff0c;录音后的音频会保存在与录音代码同一路径项目中&#xff0c;然后再新建项目敲入播放的代码&#xff0c;点击运行&#xff0c;会把录入的录音进行…

关于UE的相机震动CameraShake

创建CameraShake资源 CameraShake配置是个蓝图类&#xff0c;我们选择创建BlueprintClass&#xff0c;父类选择CameraShakeBase即可。 参数调整 目前主要用到了 LocationAmplitudeMultiplier 1 LocationFrequencyMultiplier 10 RotationAmplitudeMultiplier 1 Rotation…

嵌入式系统和物联网常见的开发板介绍

嵌入式系统和物联网&#xff08;IoT&#xff09;领域&#xff0c;开发板是工程师和开发者进行原型设计和项目开发的重要工具。开发板通常集成了微控制器或处理器、内存、输入/输出接口和外设&#xff0c;以便于快速实现功能验证和产品原型。在本教程中&#xff0c;我们将讨论一…

Java设计模式 | 设计模式概述和分类

独孤求败五重境界 利剑&#xff08;“凌厉刚猛&#xff0c;无坚不摧&#xff0c;弱冠前以之与河朔群雄争锋。”&#xff09;软剑&#xff08;“紫薇软剑&#xff0c;三十岁前所用&#xff0c;误伤义士不祥&#xff0c;乃弃之深谷。”&#xff09;重剑&#xff08;“重剑无锋&a…

mybatis源码阅读系列(二)

前言 上一篇文章mybatis源码阅读系列&#xff08;一&#xff09;介绍了mybatis和原生jdbc的区别&#xff0c;并通过代码展示了两者的运行过程和结果&#xff0c;下面让我们继续详细了解下mybatis的执行过程&#xff1b; package com.wyl.mybatis.service;import com.wyl.mybat…

C语言字符函数和字符串函数详解

Hello, 大家好&#xff0c;我是一代&#xff0c;今天给大家带来有关字符函数和字符串函数的有关知识 所属专栏&#xff1a;C语言 创作不易&#xff0c;望得到各位佬们的互三呦 一.字符函数 在C语言中有一些函数是专门为字符设计的&#xff0c;这些函数的使用都需要包含一个头文…

Navicat 面试题及答案整理,最新面试题

Navicat 在数据库管理中的主要用途有哪些&#xff1f; Navicat 是一款数据库管理工具&#xff0c;其主要用途包括&#xff1a; 1、多数据库支持&#xff1a; Navicat 支持多种数据库连接&#xff0c;包括 MySQL、Oracle、PostgreSQL、SQLite、SQL Server 等&#xff0c;方便用…

第二门课:改善深层神经网络<超参数调试、正则化及优化>-超参数调试、Batch正则化和程序框架

文章目录 1 调试处理2 为超参数选择合适的范围3 超参数调试的实践4 归一化网络的激活函数5 将Batch Norm拟合进神经网络6 Batch Norm为什么会奏效&#xff1f;7 测试时的Batch Norm8 SoftMax回归9 训练一个SoftMax分类器10 深度学习框架11 TensorFlow 1 调试处理 需要调试的参…

考研C语言复习进阶(6)

目录 1. 程序的翻译环境和执行环境 2. 详解编译链接 2.1 翻译环境 ​编辑​编辑 2.2 编译本身也分为几个阶段&#xff1a; 2.3 运行环境 3. 预处理详解 3.1 预定义符号 3.2 #define 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 2.2.3 #define 替换规则 3.2.4…

FFmpeg 常用命令汇总

​​​​​​经常用到ffmpeg做一些视频数据的处理转换等&#xff0c;用来做测试&#xff0c;今天总结了一下&#xff0c;参考了网上部分朋友的经验&#xff0c;一起在这里汇总了一下。 1、ffmpeg使用语法 命令格式&#xff1a; ffmpeg -i [输入文件名] [参数选项] -f [格…

软考--软件设计师(磁盘管理的例题)

流水线的理论公式&#xff1a; 单缓冲区&#xff1a;同一时间内只能允许一个进程进行写入读出&#xff0c;所以每个盘块经过缓冲区的时间是&#xff08;155微秒&#xff09;&#xff0c;之后再用1微秒的时间进行处理。在处理的同时&#xff0c;下一个盘块写入缓冲区&#xff0c…

牛客网-SQL大厂面试题-2.平均播放进度大于60%的视频类别

题目&#xff1a;平均播放进度大于60%的视频类别 DROP TABLE IF EXISTS tb_user_video_log, tb_video_info; CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 自增ID,uid INT NOT NULL COMMENT 用户ID,video_id INT NOT NULL COMMENT 视频ID,start…

perl 用 XML::DOM 解析 Freeplane.mm文件,生成测试用例.csv文件

Perl 官网 www.cpan.org 从 https://strawberryperl.com/ 下载网速太慢了 建议从 https://download.csdn.net/download/qq_36286161/87892419 下载 strawberry-perl-5.32.1.1-64bit.zip 约105MB 解压后安装.msi&#xff0c;装完后有520MB&#xff0c;建议安装在D:盘。 运行 …

【Redis】基于Redis实现查询缓存

1.缓存更新策略 主动更新用的最多。  主动更新一般是由缓存的调用者&#xff0c;在更新数据库的同时&#xff0c;更新缓存。 操作缓存和数据库时有三个问题需要考虑&#xff1a; 删除缓存还是更新缓存&#xff1f; 更新缓存&#xff1a;每次更新数据库都更新缓存&#xff0…

LeetCode 2684.矩阵中移动的最大次数:一列一列处理,只记能到哪行(BFS)

【LetMeFly】2684.矩阵中移动的最大次数&#xff1a;一列一列处理&#xff0c;只记能到哪行(BFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-number-of-moves-in-a-grid/ 给你一个下标从 0 开始、大小为 m x n 的矩阵 grid &#xff0c;矩阵由若干 正 整…

Uniapp有奖猜歌游戏系统源码,附带流量主

有奖猜歌游戏是一款基于uni-app、uniCloud、uniAD 开发的小游戏&#xff0c;通过猜歌曲、观看广告赚取现金奖励。 游戏基本特征 玩家可以通过猜歌、做任务等方式直接获取现金奖励 玩家可以通过猜歌、拆红包、做任务等方式获取金币奖励&#xff0c;当金币累积到一定数量可以兑…

solr/ES 分词插件Jcseg设置自定义词库

步骤&#xff1a; 1、找到配置文件jcseg-core/target/classes/jcseg.properties修改配置&#xff1a; 下载地址: https://gitee.com/lionsoul/jcseg#5-如何自定义使用词库 lexicon.path {jar.dir}/../custom-word 设置lexicon路径&#xff0c;我们这个配置可以自定义&#xf…