青岛大学_王卓老师【数据结构与算法】Week04_09_线性表的应用2_学习笔记

news2024/9/20 16:57:01

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第04周09–2.7线性表的应用2–有序表的合并–用顺序表实现

📚 📌 📝 🔍 ⚠️ 😊 ⭐ 🔗 👋 ❓ 💬 🔹 🔸 🔖 ❗️ 💟 ➔

📚 【Week04】09_有序表的合并(用顺序表实现)

有序表的合并

问题描述

已知线性表 La 和 Lb 中的数据元素按值非递减有序排列,

现要求将 La 和 Lb 归并为一个新的线性表 Lc,且 Lc 中的数据元素扔按值非递减有序排列
在这里插入图片描述

算法步骤

(1) 创建一个空表 Lc

(1) 依次从 La 或 Lb 中 “摘取” 元素值较小的结点插入到 Lc 表的最后,直至其中一个表变为空为止

(2) 继续将 La 或 Lb 其中一个表的剩余结点插入在 Lc 表的最后。

示例图1

在这里插入图片描述

示例图2

在这里插入图片描述

示例图3

在这里插入图片描述

算法描述
void MergeList Sq(SqList LA,SqList LB,SqList &LC){
    // 指针pa和pb的初值分别指向两个表的第一个元素
    pa=LA.elem;
    pb=LB.elem;		
    // 新表长度为待合并两表的长度之和
    LC.length=LA.length+LB.length;		
    // 为合并后的新表分配一个数组空间
    LC.elem=newElemType[LC.length]	
    // 指针 pc 指向新表的第一个元素
    pc=LC.elem;		
    // 指针pa last指向LA表的最后一个元素
    pa last=LA.elem+LA.length-1;	
    // 指针pb last指向LB表的最后一个元素
    pb last=LB.elem+LB.length-1;	
    // 两个表都非空
    while(pa<=pa last && pb<=pb last){		
    // 依次“摘取”两表中值较小的结点
    if(*pa<=*pb)
        *pc++=*pa++;		
    else 
        *pc++=*pb++;
    }
    while(pa<=pa last) 
        // Lb表已到达表尾,将LA中剩余元素加入Lc
        *pc++=*pa++; 
    while(pb<=pb last) 
        //La表已到达表尾,将LB中剩余元素加入Lc
        *pc++=*pb++;
}//MergeList_Sq
算法时间复杂度:O(ListLength(La) + ListLength(Lb))
算法空间复杂度:O(ListLength(La) + ListLength(Lb))

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

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

相关文章

使用 tail -f 实时观测服务器日志输出

在开发阶段, 有 console 端的输出, 总是可以方便实时地看到应用的日志. 可一旦应用部署到服务器上之后呢, 日志被输出到文件中, 在某些情景下需要不停地查看日志文件的输出以定位某些问题, 此时是否还能像开发那样实时查看日志呢? 答案是可以的! 这个命令就是 tail -f . tail…

vue2 element-ui 2.9.1版不支持抽屉el-drawer

一个老项目中想使用抽屉 el-drawer&#xff0c;死活没有反应。 查了下element-ui的版本是2.9.1 再看其他一个正常使用抽屉的项目的element-ui版本。 但是 2.14.1 的element-ui版本又存在菜单管理无法折叠菜单项的问题。 看来还是得抽空解决在2.14.1菜单无法折叠的问题了。

一文了解潜力黑马Infiblue:借力Web3,释放元宇宙价值

2013 年&#xff0c;JDN Dionisio 曾发表了一篇名为《3D Virtual Worlds and the Metaverse: Current Status and Future Possibilities》的论文&#xff0c;深入探讨与归纳了虚拟世界的几个发展阶段&#xff0c;可以简单的归纳为&#xff1a; 第一阶段&#xff1a;基于计算机文…

零代码量化投资:用ChatGPT获取新浪财经上的股票实时行情

现在很多免费的股票数据库&#xff0c;比如akshare&#xff0c;其实是从新浪财经或者东方财富网站上爬取下来的。如果能直接从新浪财经或者东方财富网站上爬取数据&#xff0c;可以获取更全面更即时的信息。 可以在ChatGPT中输入提示词如下&#xff1a; 写一段Python代码&…

探索stable-diffusion技术乐园:活学活用界面参数

开篇 嗨!欢迎踏入我们充满有趣和创新的stable-diffusion技术乐园,让我们一起走进stable-diffusion界面参数的世界,看看怎样如行家袋里取物般自在地活用这些参数! 看了这么多大V、大卡和群粉们使用的英文,提起来有点沉,别急,我会尽量使用轻松的语气带你一起探索这些小秘…

MySQL视图、索引、导入导出、执行计划

目录 一、前言 1.导读 2.学习的好处 二、视图 1.什么是视图 2.视图与数据表的区别 3.使用视图的优点 4.视图的语法 1.创建视图&#xff08;CREATE VIEW&#xff09; 2.查询视图数据 3.更新视图数据 4.修改视图定义(ALTER VIEW) 5.删除视图&#xff08;DROP VIEW&a…

VSCode中打开NodeJS项目自动切换对应版本的配置

这几年搞了不少静态站点&#xff0c;有的是Hexo的&#xff0c;有的是VuePress的。由于不同的主题对于NodeJS的版本要求不同&#xff0c;所以本机上不少NodeJS的版本。 关于如何管理多个NodeJS版本&#xff0c;很早之前就写过用nvm来管理的相关文章&#xff0c;这里就不赘述了&a…

第四范式携「式说」亮相世界人工智能大会 大模型落地进入加速时刻

7月6日-8日&#xff0c;以“智联世界 生成未来”为主题的2023世界人工智能大会&#xff08;WAIC&#xff09;在上海召开&#xff0c;本届大会聚焦通用人工智能发展。第四范式携「式说」大模型亮相现场&#xff0c;更有第四范式「大模型之城」首秀&#xff0c;汇聚了大模型在金融…

Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)

目录 Elasticsearch介绍_全文检索 Elasticsearch介绍_倒排索引 Elasticsearch介绍_Elasticsearch的出现 Elasticsearch介绍_Elasticsearch应用场景 Elasticsearch介绍_Elasticsearch对比Solr Elasticsearch介绍_Elasticsearch数据结构 Elasticsearch介绍_全文检索 Elasti…

休闲时光:最近上映的电影与爬虫世界,带您彻底放松!

大家好&#xff0c;我是安果&#xff01; 周末是与亲朋好友相聚的好时机&#xff0c;可以选择一部大家都喜欢的电影&#xff0c;彻底放松&#xff0c;共同度过一个愉快而难忘的周末 本篇文章将介绍如何使用 Scrapy 爬取最新上映的电影 目标对象&#xff1a; aHR0cHM6Ly93d3cubW…

深入浅出讲解Python中的可变类型与不可变类型,以及赋值,浅拷贝与深拷贝的区别

文章目录 1、不可变数据类型2、可变数据类型3、赋值&#xff0c;浅拷贝与深拷贝3.1 赋值操作符 3.2 浅拷贝copy()3.3 深拷贝copy() 小结 在Python中&#xff0c;数据类型主要分为可变数据类型和不可变数据类型。主要的区别在于可变数据类型的值可以改变&#xff0c;而不可变数据…

【网络系统集成】路由器实验

1.实验名称:路由器RIP协议配置 2.实验目的 在PacketTracer中进行模拟实验,配置RIP协议,验证RIP协议更新时间及路由状态变化,加深对路由器RIP协议相关知识的理解与掌握。 3.实验内容 (1)拓扑结构图 (2)ip地址分配与端口分配

Mybatis基础总结1

Mybatis快速入门 一.Mybatis快速入门1.1 框架介绍1.2 ORM介绍1.3 原始jdbc操作&#xff08;查询数据&#xff09;1.4原始jdbc操作&#xff08;插入数据&#xff09;1.5 原始jdbc操作的分析1.6 什么是Mybatis1.7 Mybatis的快速入门1.7.1 环境搭建1.7.2编写测试代码 1.8 知识小结…

Linux进程调度

转自&#xff1a;深入理解Linux进程调度(0.4)_进程调度 城_城中之城的博客-CSDN博客 一、进程调度概览 进程调度是操作系统最重要的内容之一&#xff0c;也是学习操作系统的重点和难点。关于进程本身的实现和管理请参看《深入理解Linux进程管理》。关于进程调度&#xff0c;我…

阿里云ECS服务器架构X86计算_ARM_GPU/FPGA_裸金属_超级计算集群

阿里云服务器架构有什么区别&#xff1f;X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、超级计算集群有什么区别&#xff1f;阿里云服务器网分享云服务器ECS架构详细说明&#xff1a; 目录 阿里云服务器ECS架构说明 X86计算 ARM计算 GPU/FPGA/ASIC 弹性裸金属服务…

mysql单表查询,排序,分组查询,运算符,select,order by,group by

CREATE TABLE emp (empno int(4) NOT NULL, --员工编号ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工名字job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工工作mgr int(4) NULL DEFAULT NU…

json 解析chrome浏览器插件json-handle

插件地址 非常好用&#xff0c;平常工作中需要经常查看对象属性&#xff0c;展开的时候往往都是很长的数据&#xff0c;有了这个大大提升效率了

云计算值得学习吗

云计算值得学习吗 云计算作为一项重要的技术和商业模式&#xff0c;未来的发展前景非常广阔。随着企业和个人对云计算需求的增长&#xff0c;以及新兴技术的不断突破和创新&#xff0c;云计算将继续引领科技进步和社会发展&#xff0c;并为用户带来更多的便利和创新&#xff0…

项目配置日志的打印目录,输出日志

最近的项目需要在服务器上跑&#xff0c;配个日志方便查看。简单记录一下&#xff0c; resources下新增日志配置的xml文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10 seco…

从零开始 Spring Boot 67:JPA 中的惰性元素

从零开始 Spring Boot 67&#xff1a;JPA 中的惰性元素 图源&#xff1a;简书 (jianshu.com) 惰性加载带来的问题 在实体类之间建立关系时&#xff0c;可以选择“惰性加载”&#xff0c;比如&#xff1a; Entity public class Student {// ...OneToMany(mappedBy "stu…