数据结构 | 东北大学厦门大学期末试卷查漏补缺

Prim变型算法(不会) 

有人给出求解最小生成树的另外一种算法:将连通图中的边按其权值从大到小顺序逐个删除直至不可再删,删除要遵循的原则是:保证在删除该边后各个顶点之间应该是连通的。请问该算法是正确的吗?如果认为是正确的,请给出证明。如果是错误的,请给出反例。


二叉排序树(由大到小遍历)

 

 

由小到大的遍历方法是中序遍历(左-根-右

那么如果要由大到小的遍历:则是逆中序遍历(右-根-左) 

已知中序和后序遍历如何画出二叉树

排序的时间复杂度和空间复杂度

(3)假设有个系统要多次对n个关键字进行排序,n很大且每次排序时关键字的分布情况不明。系统不希望每次排序时间变动过大,而且希望越快越好,哪种排序算法较好?为什么?

归并排序 


 最大子序列(不会)

给出一系列整数,设计算法求出总和最大的子系列,要求算法的时间复杂性在O(n)之内。比如对于整数系列-1,2,-1,3,-2,总和最大的子系列是2,-1,3(连续的、最大的)。

 

#include <iostream>  
#include <vector>  
#include <algorithm>  
  
using namespace std;  
  
int maxSumSubsequence(const vector<int>& nums) {  
    int n = nums.size();  
    vector<int> prefixSum(n + 1, 0);  
    for (int i = 0; i < n; ++i) {  
        prefixSum[i + 1] = prefixSum[i] + nums[i];  
    }  
    int maxSum = prefixSum[1];  
    int maxIndex = 0;  
    for (int i = 1; i <= n; ++i) {  
        for (int j = i; j <= n; ++j) {  
            int sum = prefixSum[j] - prefixSum[i - 1];  
            if (sum > maxSum) {  
                maxSum = sum;  
                maxIndex = i;  
            }  
        }  
    }  
    vector<int> maxSubsequence(maxIndex + 1);  
    for (int i = 0; i < maxIndex + 1; ++i) {  
        maxSubsequence[i] = nums[i];  
    }  
    return maxSubsequence;  
}  
  
int main() {  
    vector<int> nums = {-1, 2, -1, 3, -2};  
    vector<int> maxSubsequence = maxSumSubsequence(nums);  
    cout << "Max sum subsequence: ";  
    for (int num : maxSubsequence) {  
        cout << num << " ";  
    }  
    cout << endl;  
    return 0;  
}

带/不带头结点的单链表 

带头结点

 

head->next=NULL (头结点为空不影响整个链表的结构)

 

 不带头结点

 

head==NULL 

稀疏矩阵 

 


数据的存储结构

顺序存储结构

线性存储结构

散列存储结构

索引存储结构 

串 

两个串相等的充分必要条件是:两个串长度相等,且各个位置对应字符相等  


 

链表插入元素 

#include <iostream>  
using namespace std;  
  
// 定义链表节点  
struct ListNode {  
    int val;  
    ListNode* next;  
    ListNode(int x) : val(x), next(NULL) {}  
};  
  
// 插入元素e到链表L中  
ListNode* insertIntoSortedList(ListNode* head, int e) {  
    // 创建新节点  
    ListNode* newNode = new ListNode(e);  
    // 如果链表为空,将新节点作为头节点  
    if (head == NULL) {  
        head = newNode;  
    }  
    // 否则,遍历链表找到插入位置的前一个节点  
    else {  
        ListNode* cur = head;  
        while (cur->next != NULL && cur->next->val < e) {  
            cur = cur->next;  
        }  
    }  
    // 将新节点插入到合适位置  
    newNode->next = cur->next;  
    cur->next = newNode;  
    return head;  
}  
  
// 打印链表(从头到尾)  
void printList(ListNode* head) {  
    ListNode* cur = head;  
    while (cur != NULL) {  
        cout << cur->val << " ";  
        cur = cur->next;  
    }  
    cout << endl;  
}  

 

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

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

相关文章

ElasticSearch 的基础概念与入门使用

ElasticSearch 的基础概念与入门使用 前言 elasticsearch 是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大的功能&#xff0c;可以帮助我们从海量的数据中快速找到需要的内容。 例如&#xff1a; 在 Github 中搜索代码 在电商网站搜索商品 在 Google 搜索答案 …

过采样技术基本原理

本文介绍过采样技术基本原理。 过采样技术在ADC信号采集过程中使用还是比较多的。某些使用场景下&#xff0c;对采样速度要求并不是那么高&#xff08;或ADC采样速度过剩&#xff09;&#xff0c;但是想要获取较高的分辨率&#xff0c;就会用到这种技术&#xff0c;如针对温度…

设计模式:循序渐进走入工厂模式

文章目录 前言一、引入二、简单工厂模式1.实现2.优缺点3.扩展 三、工厂方法模式1.实现2.优缺点 四、抽象工厂模式1.实现2.优缺点3.使用场景 五、模式扩展六、JDK源码解析总结 前言 软件设计模式之工厂模式。 一、引入 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类…

在MongoDB中使用数组字段和子文档字段进行索引

本文主要介绍在MongoDB使用数组字段和子文档字段进行索引。 目录 MongoDB的高级索引一、索引数组字段二、索引子文档字段 MongoDB的高级索引 MongoDB是一个面向文档的NoSQL数据库&#xff0c;它提供了丰富的索引功能来加快查询性能。除了常规的单字段索引之外&#xff0c;Mong…

只更新软件,座椅为何能获得加热功能?——一文读懂OTA

2020年&#xff0c;特斯拉发布过一次OTA更新&#xff0c;车主可以通过这次系统更新获得座椅加热功能。当时&#xff0c;这则新闻震惊了车圈和所有车主&#xff0c;彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了&#xff0c;车主对各家车企的OTA升级早已见…

华为OD机试真题-园区参观路径-2023年OD统一考试(C卷)

题目描述:园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进;求从起始园区到终点园区会有多少条不同的参观路径; 输入描述:第一行为园区长和宽;后面每一行…

【ITK库学习】使用itk库进行图像配准:内插器(插值)

目录 1、itkNearestNeighborInterpolateImageFunction 最近点插值2、itkLinearInterpolateImageFunction 线性插值3、itkBSplineInterpolateImageFunction B样条插值4、itkWindowedSincInterpolateImageFunction 窗口化Sinc插值5、itkRayCastInterpolateImageFunction 投射插值…

充电桩MOS如何选型

• 充电桩是大功率 AC-DC 转换电源&#xff0c;用于给新能源电动汽车快速充电。 • 目前非 800V系统充电桩采用三相维也纳整流 LLC 电路&#xff0c;其中 PFC 整流可以采用二 极管&#xff0c;PFC 升压可以采用650V IGBT 或者 SJ MOSFET&#xff0c; LLC 采用 650V SJ MOSFET。…

Megatron模型并行研究

Megatron模型并行研究 1. 技术调研 a. Megatron-LM Megatron-LM针对的是特别大的语言模型&#xff0c;使用的是模型并行的训练方式。但和普通的模型并行不同&#xff0c;他采用的其实是张量并行的形式&#xff0c;具体来说就是将一个层切开放到不同的GPU上&#xff0c;属于层…

阿里云赵大川:弹性计算推理解决方案拯救 AIGC 算力危机

云布道师 本篇文章围绕弹性计算推理解决方案 DeepGPU 实例如何支持 Stable Diffusion 文生图推理、Stable Diffusion 推理演示示例等相关话题展开。 赵大川 阿里云弹性计算高级技术专家 GPU 云服务器推理解决方案的提出背景 随着 AIGC 时代的到来&#xff0c;两个重要应用应…

element-table表格中插入颜色块显示数据状态

dom部分&#xff1a; <el-table-column label"是否异常"><template slot-scope"scope"><div class"dcs_sf_red" v-if"scope.row.sfyc 0"></div><div class"dcs_sf_green" v-if"scope.row…

CAS机制

Java中提供了很多原子操作类来保证共享变量操作的原子性。这些原子操作的底层原理都是使用了CAS机制。在使用一门技术之前&#xff0c;了解这个技术的底层原理是非常重要的&#xff0c;所以本篇文章就先来讲讲什么是CAS机制&#xff0c;CAS机制存在的一些问题以及在Java中怎么使…

分子生成工具 - ResGen 评测

ResGen 模型是浙江大学药学院侯廷军老师课题组2023年发表在nature machine intelligence期刊上文章Nature Machine Intelligence | Volume 5 | September 2023 | 1020–1030&#xff0c;题目为&#xff1a;《ResGen is a pocket-aware 3D molecular generation model based on …

利用老毛桃、ultraiso软碟通制作启动U盘装系统 以及硬盘安装系统

目录 一. 老毛桃制作winPE镜像 1.1 准备工作 1.2 启动U盘制作步骤 1.3 启动U盘装系统 二. 使用ultraiso软碟通制作启动U盘 2.1 启动U盘制作步骤 2.2 启动U盘装系统 三. 硬盘安装系统 3.1 硬盘镜像制作步骤 3.2 硬盘镜像装系统 思维导图 一. 老毛桃制作winPE镜像 …

网工内推 | 华晨宝马、金士顿,最高16薪招网工,NP以上优先

01 华晨宝马汽车有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1&#xff0c; 参与公司数字化建设&#xff0c;负责厂区生产区域和办公区域的网络规划、建设和优化&#xff0c;包括有线网络和无线网络&#xff1b; 2&#xff0c; 提供公司数据中心架构规划&a…

<蓝桥杯软件赛>零基础备赛20周--第11周--贪心

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上答疑&#x…

数据结构---算法的空间复杂度

文章目录 空间复杂度概念实例 空间复杂度 概念 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。…

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式&#xff0c;但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件&#xff0c;今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器&#xff0c;其实浏览器也可以用来打开PDF文件。 只需…

慢调用链诊断利器-ARMS 代码热点

作者&#xff1a;铖朴、义泊 可观测技术背景 从最早的 Google 发表的一篇名为《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》的论文开始&#xff0c;到后来以&#xff1a;Metrics&#xff08;指标&#xff09;、Tracing&#xff08;链路追踪&#xf…

深入理解依赖反转原则(DIP)

依赖反转原则是一个比较重要的架构原则&#xff0c;从定义上看是要依赖于抽象&#xff0c;不要依赖于细节&#xff0c; 这个听起来很简单&#xff0c;好像加个接口就完事了&#xff0c;大家的service都是一个接口配一个实现类&#xff0c;是不是依赖倒置呢&#xff1f;很显然不…