C语言每日一题(8):有序序列合并

标头风景


  • 文章主题:有序序列合并🔥🔥🔥
  • 所属专栏:C语言每日一题📗
  • 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶
  • 个人主页:[₽]的个人主页🏄🌊

目录

  • 前言
    • 编程起因
    • 项目介绍
      • 项目名
      • 项目描述
      • 输入描述
  • 设计思路
    • 1.整体逻辑
    • 2. 具体逻辑
      • 方法一:
      • 方法二:
  • 代码展示
    • 方法一 :集中于一数列的冒泡排序法(速度慢,两行数排列顺序可随机)
    • 方法二 :两行数边遍历边比较取小元素输出法(速度快,两行必须小到大)
  • 效果展现
  • 结语


前言

编程起因

最近在牛客网中学到了一个比较有意思的题目,觉得对于锻炼编程思维比较有意义,便在VS上用优化的方法写了一遍后写下了这篇博客分享给大家。

项目介绍

项目名

有序序列合并

项目描述

输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
数据范围:1 ≤ n, m ≤ 1000,序列中的值满足 0 ≤ val ≤ 30000

输入描述

输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。


设计思路

1.整体逻辑

方法一:将两行数字合并成一行数字后输入到一个数列中,再用冒泡排序法将其输出。方法二:将两行数字分别输入进两个数列中,两个数列边遍历边比较取最小元素输出,某一个数列首先输出完之后退出循环。用分支语句判断输出完的数列是哪个后,将另一个数组剩下的元素输出。

2. 具体逻辑

方法一:

利用输入进去的行元素个数n和m遍历,将两行数字合并成一行数字后输入到一个数列中,再用冒泡排序法将其输出。

方法二:

利用输入进去的行元素个数n和m遍历,将两行数字分别输入进两个数列中,再用元素i和j储存两数列的下标,再分别各取第一个元素比较最小的元素输出后,通过自增储存数列下标的变量i或j的值将该元素属于的数列往后取第二个元素和另一个数组的第一个元素继续比较最小的元素输出后,如此循环往复的遍历之后,直到某一个数列首先输出完之后退出循环。再用分支语句判断输出完的数列是第一个还是第二个之后,将另一个数组剩下的元素输出出来,然后这样就将两数列中的数据以从小到大的顺序全部输出出来。


代码展示

方法一 :集中于一数列的冒泡排序法(速度慢,两行数排列顺序可随机)

#include <stdio.h>
int main()
{int n = 0, m = 0, arr[2000] = { 0 };printf("Please enter the number of rows for two sequences:\n");scanf("%d%d", &n, &m);printf("Please enter the elements of two sequences separately:\n");for (int i = 0; i < n + m; i++)//两行作一行储存在一数列中{scanf("%d", &arr[i]);}int tmp = 0;for (int i = n + m - 1; i > 0; i--)//将该行数列中的数有小到大冒泡排序{for (int j = 0; j < i; j++){if (arr[j] > arr[j + 1]){tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}printf("The merged sequence in ascending order is:\n");//输出有小到大排序后的数列for (int i = 0; i < n + m; i++){printf("%d ", arr[i]);}return 0;
}

方法二 :两行数边遍历边比较取小元素输出法(速度快,两行必须小到大)

#include <stdio.h>
int main()
{int n = 0, m = 0, arr1[1000] = { 0 }, arr2[1000] = { 0 };printf("Please enter the number of rows for two sequences:\n");scanf("%d%d", &n, &m);printf("Please enter the elements of two sequences separately:\n");int i = 0, j = 0;for (; i < n; i++)//将第一行数据输入到数列1中{scanf("%d", arr1 + i);}for (; j < m; j++)//将第二行数据输入到数列2中{scanf("%d", arr2 + j);}i = 0;j = 0;int k = 0;printf("The merged sequence in ascending order is:\n");while (i < n && j < m)//运用具体逻辑中的方法将一个数列中的数据输出{if (arr1[i] < arr2[j]){printf("%d ", arr1[i++]);}else{printf("%d ", arr2[j++]);}}if (i == n)//运用分支语句判断输出的数列是哪一个后再将另一数列剩下的元素全部输出{for (; j < m; j++){printf("%d ", arr2[j]);}}else{for (; i < n; i++){printf("%d ", arr1[i]);}}return 0;
}

效果展现

效果展现


结语

以上就是我对有序序列合并这个项目的解题思路,代码以及效果展示,希望对你的C语言学习有所帮助!作为刚学编程的小白,可能在一些设计逻辑方面有些不足,欢迎评论区进行指正!看都看到这了,点个小小的赞或者关注一下吧(当然三连也可以~),你的支持就是博主更新最大的动力!让我们一起成长,共同进步!


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

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

相关文章

Linux的socket通信

关于套接字通信定义如下&#xff1a; 套接字对应程序猿来说就是一套网络通信的接口&#xff0c;使用这套接口就可以完成网络通信。网络通信的主体主要分为两部分&#xff1a;客户端和服务器端。在客户端和服务器通信的时候需要频繁提到三个概念&#xff1a;IP、端口、通信数据&…

排序:希尔排序(Shell Sort)算法分析

1.算法思想 希尔排序:先追求表中元素部分有序再逐渐逼近全局有序. 希尔排序∶先将待排序表分割成若干形如 L [ i , i d , i 2 d . . . . , i k d ] L[i,i d,i 2d ...., i kd] L[i,id,i2d....,ikd]的“特殊”子表&#xff0c; 对各个子表分别进行直接插入排序。缩小增量…

4000多配置主机

显卡&#xff1a;盈通大地之神RTX 4060 2069 √ CPU&#xff1a;Intel i5 12400F 845 √ 主板&#xff1a;微星PROH610M-E D4 489 √ 内存&#xff1a;金百达银爵 长鑫Adie 3200MHz C16 16G&#xff08;8G*2&#xff09;205 √ 电源&#xff1a;240.76 √ 固态&#xff1…

报错:appium AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘

报错如下 Traceback (most recent call last):File "C:\Users\wlb\Desktop\test\python\2.py", line 16, in <module>driver webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)File "D:\software\python3\lib\site-packages\appium\we…

MySQL单表查询和多表查询

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作等 CREATE TABLE worker (部门号 int(11) NOT NULL,职工号 int(11) NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10)…

回溯-求出数组的所有子序列【学习算法】

回溯-求出数组的所有子序列【学习算法】 前言版权推荐回溯-求出数组的所有子序列代码 最后 前言 2023-9-24 22:42:11 以下内容源自《【学习算法】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://b…

恒合仓库 - 采购单管理模块

采购单管理模块 文章目录 采购单管理模块一、添加采购单(核心)1.1 采购流程1.2 采购单实体类1.3 添加采购单1.3.1 Mapper1.3.2 Service1.3.3 Controller1.3.4 效果图 二、采购单管理模块2.1 仓库数据回显2.1.1 Mapper2.1.2 Service2.1.3 Controller2.1.4 效果图 2.2 采购单列表…

【Unity的HDRP渲染管线搭建配置VR交互场景_SteamVR 插件和Pico串流助手】

HDRP渲染管线配置VR交互场景 Unity创建场景和相关配置下载导入项目打开PICO串流助手在Pico中的配置:用Steam串流VR_这篇的前置补充 Unity创建场景和相关配置 带HDRP Sample Scene 示例的 下载 SteamVR Unity插件地址02 导入项目

刷题笔记26——图论二分图判定

世界上的事情,最忌讳的就是个十全十美,你看那天上的月亮,一旦圆满了,马上就要亏厌;树上的果子,一旦熟透了,马上就要坠落。凡事总要稍留欠缺,才能持恒。 ——莫言 visited数组是在如果有环的情况下&#xff0c;防止在图中一直绕圈设置的&#xff0c;类似于剪枝操作&#xff0c;走…

怒刷LeetCode的第10天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;两次拓扑排序 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;分治法 方法二&#xff1a;优先队列&#xff08;Priority Queue&#xff09; 方法三&#xff1a;迭代 第三题 题目来源 题目内容…

el-table 默认数据选中优化版本

直接看代码 <template><div><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%;height:500px"select"handleSelectChange"select-all"handleSelectAllChange"ro…

【Vue】ElementUI实现登录注册

目录 一.跨域的概述 1.1.概述 1.2.特点 二.ElementUI 2.1. 导入 2.2.搭建 2.3.页面 三.数据交互 3.1.安装相关模块 3.1.1安装模块 3.1.2查看模块 3.1.3.引用模块 3.2. axios的get请求 3.3. axios的post请求 四.注册功能 好啦今天到这了&#xff0c;希望能帮到你&…

Matplotlib 是一个广泛用于 Python 数据可视化的库

Matplotlib 是一个广泛用于 Python 数据可视化的库&#xff0c;它提供了丰富的绘图功能&#xff0c;允许用户创建各种类型的图表&#xff0c;从简单的折线图到复杂的三维图表&#xff0c;以及定制图形的各个方面。以下是Matplotlib的一些重要特点和常见用法&#xff1a; Matpl…

ACID、CAP理论、BASE模型

ACID解决方案ACID数据库事务极大地简化了应用开发人员的工作.正如其缩写标识所示,ACID事务提供以下几种保证: Atomicity&#xff08;原子性&#xff09;&#xff0c;事务中的所有操作,要么全部成功,要么全部不做. Consistency&#xff08;一致性&#xff09;在事务开始与结束时…

向量数据库库Milvus Cloud2.3 技术选型中性能、成本、扩展性是重点

技术选型中性能、成本、扩展性是重点 对于向量数据库来说,用户最关心的莫过于性能、成本和扩展性。 Milvus 2.x 从 Day 1 开始就将扩展性作为设计的第一优先级,在众多用户环境中落地了十亿至百亿级别场景。不止如此,对于 Milvus 来说,扩展性不仅仅意味着支持百亿级别向量,…

网站整站优化-网站整站优化工具

您是否曾为您的网站在搜索引擎中的排名而感到焦虑&#xff1f;是否苦苦思考如何提高流量、吸引更多用户&#xff1f; 什么是整站优化。简而言之&#xff0c;它是一项用于提升网站在搜索引擎中排名的策略和技巧。通过对网站的内容、结构、速度等方面进行优化&#xff0c;可以使…

wordpress使用category order and taxonomy terms order插件实现分类目录的拖拽排序

文章目录 引入实现效果安装插件使用插件 引入 使用docker快速搭建wordpress服务&#xff0c;并指定域名访问 上一节我们使用docker快速搭建了wordpress服务&#xff0c;可以看到基础的wordpress服务已经集成基础的用户管理、文章发布、页面编辑、文章分类等功能&#xff0c;但…

当下IT测试技术员的求职困境

从去年被裁到现在&#xff0c;自由职业的我已经有一年没有按部就班打卡上班了。期间也面试了一些岗位&#xff0c;有首轮就挂的&#xff0c;也有顺利到谈薪阶段最后拿了offer的&#xff0c;不过最后选择了拒绝。 基于自己近一年的面试求职经历&#xff0c;我想聊聊当下大家在求…

时序数据库 IoTDB 发布端边云原生解决方案,有效优化工业互联网数据上传时效与资源消耗...

2023 年 9 月 8 日&#xff0c;由中国通信学会、福建省工业和信息化厅主办的 2023 中国国际工业互联网创新发展大会在厦门举办。大会主论坛中&#xff0c;时序数据库 IoTDB 发表其自研建立的端边云原生解决方案&#xff0c;该方案可实现端侧设备、边缘服务器、数据中心数据的协…

安卓备份基带分区 备份字库 步骤解析 以免误檫除分区或者“格机” 后悔莫及

玩机搞机---安卓机型mtk和高通芯片查看分区 导出分区 备份分区的一些工具分析 修复基带 改串码 基带qcn 改相关参数 格机危害 手机基带的重要性前面几期博文我都有相关的说明。他区别于别的分区。而且目前手机的安全性越来越高。基带分区基本都是专机专用。而不像早期机型一…