【算法集训之线性表篇】Day 05

news2024/11/17 10:44:36

文章目录

  • 题目
  • 思路
  • 代码实现
  • 效果

题目

将两个有序顺序表合并为一个有序顺序表,函数结果返回值为顺序表。

思路

  1. 我们可以利用二路归并排序算法中的Merge函数思路,设置两个指针i,j,分别记录在顺序表a和b中的访问位置,再利用直接插入排序算法思想,将比较后的元素值插入顺序表中。时间复杂度为O(n),空间复杂度为O(n)。

代码实现

Array LinearList::Question_07()
{
    Array arr1,arr2;
    arr1.length = 5;
    cout<<"insert 5 nums to arr1:"<<endl;
    for(int i = 0;i < arr1.length;i ++)
    {
        cin >> arr1.data[i];
    }

    arr2.length = 5;
    cout<<"insert 5 nums to arr2:"<<endl;
    for(int i = 0;i < arr2.length;i ++)
    {
        cin >> arr2.data[i];
    }

    int i = 0,j = 0,k = 0;
    arr.length = arr1.length + arr2.length;

    while(i < arr1.length || j < arr2.length)
    {
        if(arr1.data[i] <= arr2.data[j] && i < arr1.length && j < arr2.length)
        {
            arr.data[k++] = arr1.data[i++];
        }
        else if(arr1.data[i] > arr2.data[j] && i < arr1.length && j < arr2.length)
        {
            arr.data[k++] = arr2.data[j++];
        }
        else if(j >= arr1.length-1)
        {
            arr.data[k++] = arr1.data[i++];
        }
        else if(i >= arr2.length-1)
        {
            arr.data[k++] = arr2.data[j++];
        }
    }
    return arr;
}

效果

在这里插入图片描述

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

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

相关文章

【未解决】No rule to make target ‘/usr/lib/x86_64-linux-gnu/libGL.so‘

测试ros自带的PCL1.8是否能用&#xff0c;网上找个测试代码&#xff0c;编译阶段报错&#xff1a; cmake .. -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** io features related to ensenso will be disabled -- Could NOT find …

Blender环境纹理材质贴图入门教程

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D开发工具链 大家好&#xff0c;今天跟大家分享Blender材质贴图入门图文教程&#xff0c;一套blender的PBR材质包&#xff0c;和HDRI环境纹理贴图&#xff0c;在文末领取&#xff0c;希望能助到大家更高效完成场景练习。 据我了解…

Linux Deploy(一)Linux Deploy简介与软件安装

一、Linux Deploy简介 Linux Deploy可以在安卓机器上使用chroot容器技术运行arm或者x86的Linux系统&#xff0c;利用该技术可以搭建个人服务器&#xff0c;Linux Deploy可运行多种linux发行版的软件&#xff0c;不失为一个好的家庭微型服务系统&#xff0c;如果想把手机弄成微…

【Spark_BigData】期末复习考试——

复习题目 yarn框架中不包含的进程为 Yarn包括两个主要进程:资源管理器Resource-Manager,节点管理器Node-Manager。 Scheduler zookeeper spark SQL 前身 Shark 在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。 HiveContext继承自SQLCon…

安装最新版CMAK,处理报错java.util.NoSuchElementException: key not found: PLAINTEXT

安装最新版CMAK&#xff0c;处理报错java.util.NoSuchElementException: key not found: PLAINTEXT 一、下载CMAK二、解压CMAK三、修改配置文件四、安装jdk11五、启动CMAK六、CMAK界面设置Kafka集群信息七、完整报错八、报错原因九、解决方法 一、下载CMAK CMAK下载地址&#…

将本地项目上传至gitee

一、先去gitee新建仓库 点击新建仓库之后&#xff0c;跳转下图页面 点击创建之后&#xff0c;跳转下图页面 到此为止&#xff0c;这里仓库就创建好了&#xff0c;下面去提交代码 二、本地项目连接远程仓库 1、进入想上传的项目的文件夹&#xff0c;然后右键点击 Git Bash Her…

Stable Diffusion 模特换装 蒙版一键批量提取

有没有想过可以使用算法批量提取图片中模特的服装&#xff0c;然后通过SD进行换装。 一个一个的PS抠图是不是太累&#xff0c;可以使用算法批量提取。相对于 Segment Anything 方法这个比较简单。 文章目录 蒙版批量提取SD换装 蒙版批量提取 import osfrom tqdm import tqdm …

前台测试,工程督导及5G网络优化工程师的区别具体在哪里?

什么是通信? 北邮版《通信原理》教材的第一句话是--通信乃是互通信息。 其实&#xff0c;这句话就说出了通信的本质&#xff0c;通信的目标就是如何让世界的任何人在任何时间&#xff0c;任何地点都进行信息的互通。 大到卫星&#xff0c;小到SIM卡&#xff0c;通信技术覆盖于…

OpenCV实现一张图片的特定区域上添加另一张图片

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv;int main( ){Mat image= imread

Vite是如何实现Esbuild打包的

前面文章说过&#xff08;Vite如何实现秒级依赖预构建的能力&#xff09;&#xff0c;在 Vite 依赖预构建的底层实现中&#xff0c;大量地使用到了 Esbuild 这款构建工具&#xff0c;实现了比较复杂的 Esbuild 插件功能和技巧。接下来&#xff0c;我就来带你揭开 Vite 预构建神…

【JVM进阶】JVM看这一篇就够了(类加载器、垃圾回收、JVM调优、内存泄漏、CPU飙高)

文章目录 1、JVM组成1.1、JVM组成及运行流程1.2、程序计数器什么是程序计数器&#xff1f; 1.3、Java堆你能给我详细的介绍Java堆吗? 1.4、虚拟机栈什么是虚拟机栈垃圾回收是否涉及栈内存&#xff1f;栈内存分配越大越好吗&#xff1f;方法内的局部变量是否线程安全&#xff1…

spring boot学习之自定义starter启动器

starter启动器的目标 引入maven包即可自动装配配置&#xff0c;个人理解&#xff0c;如jdbc引入即可操作数据库 实现 1新建springboot工程编写实现类 2编写配置类 3配置 4打包 4新建工程引入使用

【Linux】进程信号之信号的保存

进程信号 二 一、信号的保存1、信号其他相关常见概念2、信号在内核中表示3、系统内核中信号集sigset_t类型介绍 二、信号集操作函数1、sigset_t 类型的操作函数2、关于block表的系统调用3、关于pending表的系统调用 三、结语 一、信号的保存 1、信号其他相关常见概念 实际执行…

1、vscode+cmake c++环境配置

文章目录 1、安装2、开发环境 关于vscode c环境的配置&#xff0c;应该有两种一种是vscodec/c插件&#xff0c;另一种是vscodecmake插件&#xff0c;第一种没太多用过&#xff0c;感觉就像python那样&#xff0c;要写相关配置文件&#xff0c;有自己的一套规则&#xff1b;另一…

【雕爷学编程】Arduino动手做(155)---2262/2272四键无线遥控套件模块

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

ISO接口隔离

IIC为例 为什么需要隔离—隔离电路 隔离电性干扰&#xff0c;增强抗干扰能力&#xff0c;保护隔离总线iic确保系统的稳定型和可靠性。【通过我们强大的I2C缓冲转换器、I/O扩展器和交换机组合&#xff0c;简化您的I2C总线并减少通信错误。这些器件具有宽电压范围和小型工业标准…

手写操作系统--读写硬盘操作

以下图片均来自王道考研视频我们先来看看硬盘的结构&#xff1a; 这是物理图上的磁盘构造。 一个盘片被分成一个个的磁道。 在划分一下就会出现我们的扇区&#xff0c;每个扇区的大小是固定的&#xff0c;一般来说是512个字节。最内侧的扇区面积小&#xff0c;因此数据密度就密…

c++11 标准模板(STL)(std::basic_istream)(一)

定义于头文件 <istream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式…

C#核心知识回顾——11.各数据集合的汇总区分、委托、事件、匿名函数

变量: 无符号 byte正8位 ushort正16位 uint正32位 ulong正64位 有符号 sbyte8位 short16位 int32位 long64位 浮点数 float double decimal 特殊 char bool string 复杂数据容器: 枚举enum 结构体struct 数组(一维、二维、交错) [] [,] [][] 类 数据集合&#xff1a;…

ChatGPT 提示词设置

提示词 Prompt&#xff08;提示词&#xff09;&#xff1a;当我们询问GPT时&#xff0c;发送的消息就是Prompt。 通过给出合适的Prompt&#xff0c;可以让GPT了解我们的想法&#xff0c;在根据我们的想法做出更加合适的判断&#xff0c;帮助我们完成任务&#xff0c;提高效率。…