当前位置: 首页 > news >正文

PAT--1035 插入与归并

题目描述

根据维基百科的定义:

插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。

归并排序进行如下迭代操作:首先将原始序列看成 N N N 个只包含 1 1 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 1 1 个有序的序列。

现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?

输入格式:

输入在第一行给出正整数 N ( ≤ 100 ) N (\leq 100) N(100);随后一行给出原始序列的 N N N 个整数;最后一行给出由某排序算法产生的中间序列。这里假设排序的目标序列是升序。数字间以空格分隔。

输出格式:

首先在第 1 1 1 行中输出 Insertion Sort 表示插入排序、或 Merge Sort 表示归并排序;然后在第 2 2 2 行中输出用该排序算法再迭代一轮的结果序列。题目保证每组测试的结果是唯一的。数字间以空格分隔,且行首尾不得有多余空格。

输入样例 1:

10
3 1 2 8 7 5 9 4 6 0
1 2 3 7 8 5 9 4 6 0

输出样例 1:

Insertion Sort
1 2 3 5 7 8 9 4 6 0

输入样例 2:

10
3 1 2 8 7 5 9 4 0 6
1 3 2 8 5 7 4 9 0 6

输出样例 2:

Merge Sort
1 2 3 8 4 5 7 9 0 6

解析

  • 插入排序。最前面若干个数保证有序,后续部分保持原样,因此我们就可以遍历一次,找出第一个逆序的位置,记为 p o s pos pos,那么我们就比较一下 a , b a,b a,b 数组对于 [ p o s , n ] [pos,n] [pos,n] 这个区间内是否相同,如果相同,那么就说明是插入排序。
  • 归并排序。第一次每两个一组,内部排序,第二次四个一组,内部排序,以此类推。因此我们可以枚举 2 , 4 , 8 , . . . 2,4,8,... 2,4,8,...,对 a a a 数组进行排序,直到某一次,发现排完序之后 a a a 数组和 b b b 数组相同了,假设当前每一组的元素个数为 i i i,那么我们下一步就是要将每 i ∗ 2 i*2 i2 个元素为一组进行排序,再排序一次即可。

代码实现

#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int a[N], b[N];
void solve() {int n;cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++) cin >> b[i];int pos = -1;for (int i = 2; i <= n; i++) {if (b[i] < b[i - 1]) {pos = i;//找到第一个逆序的位置break;}}bool ok = true;//判断是否是插入排序for (int i = pos; i <= n; i++) if (a[i] != b[i]) ok = false;if (ok) {cout << "Insertion Sort\n";sort(a + 1, a + pos + 1);//下一步就是把[1,pos]排好序for (int i = 1; i <= n; i++) {if (i != 1) printf(" ");cout << a[i];}} else {cout << "Merge Sort\n";for (int i = 2; i <= n; i *= 2) {//枚举当前排序块的长度for (int l = 1; l <= n; l += i) sort(a + l, a + min(n, l + i - 1) + 1);bool ok = true;//判断是否到达题目给定的状态for (int k = 1; k <= n; k++) if (a[k] != b[k]) ok = false;//判断是否相同了if (ok) {//如果到达,直接模拟下一步即可i *= 2;for (int l = 1; l <= n; l += i) sort(a + l, a + min(n, l + i - 1) + 1);for (int j = 1; j <= n; j++) {if (j != 1) cout << " ";cout << a[j];}return;}}}
}
int main()
{int t = 1;//cin>>t;while (t--) solve();return 0;
}

相关文章:

PAT--1035 插入与归并

题目描述 根据维基百科的定义&#xff1a; 插入排序是迭代算法&#xff0c;逐一获得输入数据&#xff0c;逐步产生有序的输出序列。每步迭代中&#xff0c;算法从输入序列中取出一元素&#xff0c;将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如…...

Ubuntu20.04.6编译OpenWRT23.05.5错误

在Ubuntu20.04.6编译OpenWRT23.05.5时&#xff0c;会出现如下提示&#xff1a; fatal error: asm/types.h: No such file or directory 如果我们执行如下命令&#xff1a; sudo ln -s /usr/include/asm-generic /usr/include/asm 此时再次编译&#xff0c;会有如下提示&…...

一文说清flink从编码到部署上线

引言:目前flink的文章比较多,但一般都关注某一特定方面,很少有一个文章,从一个简单的例子入手,说清楚从编码、构建、部署全流程是怎么样的。所以编写本文,自己做个记录备查同时跟大家分享一下。本文以简单的mysql cdc为例展开说明。 环境说明:MySQL:5.7;flink:1.14.0…...

【5G】5G Physical Layer物理层(一)

5G多址接入和物理层与长期演进&#xff08;LTE&#xff09;存在一些差异。在下行方向&#xff0c;5G与LTE相似&#xff0c;依旧采用正交频分多址&#xff08;OFDMA&#xff09;。而在上行方向&#xff0c;5G采用了OFDMA和单载波频分多址&#xff08;SC-FDMA&#xff09;&#x…...

GauHuman阅读笔记【3D Human Modelling】

笔记目录 1. 基本信息2. 理解(个人初步理解,随时更改)3. 精读SummaryResearch Objective(s)Background / Problem StatementMethod(s)EvaluationConclusionReferences1. 基本信息 题目:GauHuman: Articulated Gaussian Splatting from Monocular Human Videos时间:2023.12…...

qemu安装arm64架构银河麒麟

qemu虚拟化软件&#xff0c;可以在一个平台上模拟另一个硬件平台&#xff0c;可以支持多种处理器架构。 一、安装 安装教程&#xff1a;https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接&#xff1a;https://qemu.weilnetz.de/w64/2024/ 我下载的是 …...

在Elasticsearch (ES) 中,integer 和 integer_range的区别

在Elasticsearch (ES) 中,integer 和 integer_range 是两种不同的字段类型,它们用于存储和查询不同类型的数据。 Integer: integer 类型是用于存储32位整数值的简单数据类型。这个类型的字段适合用来表示单一的整数数值,例如用户的年龄、商品的数量等。支持标准的数值操作,…...

Playwright中Page类的方法

导航和页面操作 goto(url: str, **kwargs: Any): 导航到一个URL。 reload(**kwargs: Any): 重新加载当前页面。 go_back(**kwargs: Any): 导航到会话历史记录中的前一个页面。 go_forward(**kwargs: Any): 导航到会话历史记录中的下一个页面。 set_default_navigation_tim…...

硬链接方式重建mysql大表

硬链接方式重建mysql大表 操作步骤 选择数据库 select datadir; 进入数据文件目录 cd /data/mysql/mydata/testdb 创建硬连接 ln test_trans_msg_xx.ibd test_service_trans_msg_xx.ibd.bak ll test_trans_msg_xx* 进库删除表 DROP TABLE test_trans_msg_xx; 重建表 CREATE T…...

GPIO在ZYNQ7000中的结构和相关寄存器解析

GPIO MASK DATA LSW和 MASK DATA MSW LSW和MSW分别是LSW (Least Significant Word)和MSW (Most Significant Word)。 因为DATA是u32,所以如果寄存器的基址是XGPIOPS_DATA_LSW_OFFSET&#xff0c;那么32位就能同时让高16位的MASK DATA MSW]31:16和 MASK DATA LSW的bit7同时为…...

Qt Xlsx安装教程

Qt Xlsx安装教程 安装perl 如果没有安装perl&#xff0c;请参考perl Window安装教程 下载QtXlsxWriter源码 下载地址 ming32-make编译32 lib库 C:\Qt\Qt5.12.12\5.12.12\mingw73_32>d: D:\>cd D:\Code\QtXlsxWriter-master\QtXlsxWriter-master D:\Code\QtXlsxWrit…...

Certimate自动化SSL证书部署至IIS服务器

前言&#xff1a;笔者上一篇内容已经部署好了Certimate开源系统&#xff0c;于是开始搭建部署至Linux和Windows服务器&#xff0c;Linux服务器十分的顺利&#xff0c;申请证书-部署证书很快的完成了&#xff0c;但是部署至Windows Server的IIS服务时&#xff0c;遇到一些阻碍&a…...

【中工开发者】鸿蒙商城实战项目(启动页和引导页)

创建一个空项目 先创建一个新的项目选择第一个&#xff0c;然后点击finish 接下来为项目写一个名字&#xff0c;然后点击finish。 把index页面的代码改成下面代码块的代码&#xff0c;就能产生下面的效果 Entry Component struct Index {build() {Column(){Blank()Column(){…...

跟李笑来学美式俚语(Most Common American Idioms): Part 63

Most Common American Idioms: Part 63 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记&#xff0c;自用。 Github仓库链接&#xff1a;https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来&#xff08;或者clone到本地…...

scala中如何解决乘机排名相关的问题

任务目标&#xff1a; 1.计算每个同学的总分和平均分 2.按总分排名&#xff0c;取前三名 3.按单科排名&#xff0c;取前三名 好的&#xff0c;我们可以用Scala来完成这个任务。下面是一个简单的示例代码&#xff0c;它将演示如何实现这些功能&#xff1a; // 假设我们有一个…...

OpenCV相机标定与3D重建(10)眼标定函数calibrateHandEye()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算手眼标定&#xff1a; g T c _{}^{g}\textrm{T}_c g​Tc​ cv::calibrateHandEye 是 OpenCV 中用于手眼标定的函数。该函数通过已知的机器人…...

Hadoop生态圈框架部署(九-2)- Hive HA(高可用)部署

文章目录 前言一、Hive部署&#xff08;手动部署&#xff09;下载Hive1. 上传安装包2. 解压Hive安装包2.1 解压2.2 重命名2.3 解决冲突2.3.1 解决guava冲突2.3.2 解决SLF4J冲突 3. 配置Hive3.1 配置Hive环境变量3.2 修改 hive-site.xml 配置文件3.3 配置MySQL驱动包3.3.1 下在M…...

docker 相关操作

1. 以下是一些常见的 Docker 命令&#xff1a; docker --version显示安装的 Docker 版本。 docker pull <image_name>从 Docker Hub 或其他镜像仓库下载镜像。 docker build -t <image_name> <path>从指定路径的 Dockerfile 构建 Docker 镜像。 docker i…...

AI作图效率高,亲测ToDesk、顺网云、青椒云多款云电脑AIGC实践创作

一、引言 随着人工智能生成内容&#xff08;AIGC&#xff09;的兴起&#xff0c;越来越多的创作者开始探索高效的文字处理和AI绘图方式&#xff0c;而云电脑也正成为AIGC创作中的重要工具。相比于传统的本地硬件&#xff0c;云电脑在AIGC场景中展现出了显著的优势&#xff0c;…...

【代码随想录day57】【C++复健】 53. 寻宝(prim算法);53. 寻宝(kruskal算法)

53. 寻宝&#xff08;prim算法&#xff09; 好像在研究生的算法课上学过prim算法和kruskal算法&#xff0c;不过当时只是了解了一下大致的概念和流程&#xff0c;并没有涉及到如何去写代码的部分&#xff0c;今天也算是学习了一下这两个算法的代码应该如何去实现&#xff0c;还…...

阿姆智创21.5寸工控电脑一体机,硬核性能解锁工业自动化,源头工厂ODM定位解决方案

在工业4.0的浪潮下&#xff0c;SMT产线的精密化运行、MES与ESOP系统的数字化落地、自动化设备的智能化联动&#xff0c;对工业控制终端的综合性能、系统适配性和场景贴合度提出了更高要求。阿姆智创21.5寸工控电脑一体机&#xff0c;以工业级硬核性能为基底&#xff0c;以多系统…...

益达App:5分钟打造你的跨平台全能媒体聚合神器

益达App&#xff1a;5分钟打造你的跨平台全能媒体聚合神器 【免费下载链接】yidaRule 益达规则仓库 项目地址: https://gitcode.com/gh_mirrors/yi/yidaRule 还在为手机里装满了各种视频、音频、阅读App而烦恼吗&#xff1f;每天在不同应用间切换&#xff0c;只为找到想…...

ADRV9009+ZCU102实战:从HDL工程构建到no-OS移植的5个关键步骤

ADRV9009ZCU102全流程开发指南&#xff1a;从HDL工程构建到no-OS移植的深度实践 在射频系统开发领域&#xff0c;ADRV9009作为一款高性能射频收发器&#xff0c;与Xilinx ZCU102开发板的组合已成为许多硬件工程师的首选方案。本文将深入剖析五个关键环节的技术细节&#xff0c;…...

AI辅助开发实战:如何高效对接智能客服系统并优化对话流程

最近在项目中对接智能客服系统&#xff0c;发现这事儿比想象中要复杂不少。接口文档动辄几十页&#xff0c;对话状态管理起来像一团乱麻&#xff0c;更别提还要优化对话流程提升用户体验了。好在现在有AI辅助开发工具&#xff0c;能帮我们省不少力气。今天就来分享一下&#xf…...

开源AI工具降本增效:Pixel Fashion Atelier助力小型工作室节省70%概念图外包成本

开源AI工具降本增效&#xff1a;Pixel Fashion Atelier助力小型工作室节省70%概念图外包成本 1. 项目概述 Pixel Fashion Atelier是一款基于Stable Diffusion与Anything-v5的开源图像生成工具&#xff0c;专为时尚设计领域打造。它通过创新的像素风格界面和优化的模型组合&am…...

大数据核心知识全解(零基础到Hadoop专家路线)【20260324】001篇

文章目录 大数据核心知识全解(零基础到Hadoop专家路线) 一、为什么会出现大数据?(本质原因) 1. 数据来源爆炸 2. 传统技术扛不住 3. 需求倒逼 二、CNCF 是什么?(云原生核心组织) 它和大数据的关系 三、为什么 Hadoop 会流行?(3个核心原因) 1. 它解决了当时最痛的问题…...

OpenClaw备份方案:Qwen3.5-9B模型接口故障时的降级策略

OpenClaw备份方案&#xff1a;Qwen3.5-9B模型接口故障时的降级策略 1. 为什么需要备份方案&#xff1f; 上周我正用OpenClaw处理一批重要文件归档任务时&#xff0c;突然遇到Qwen3.5-9B接口响应超时。当时正在半夜&#xff0c;没有备用方案的我只能眼睁睁看着自动化流程中断&…...

OpenClaw浏览器自动化:Qwen3-VL:30B爬取图文数据到Notion

OpenClaw浏览器自动化&#xff1a;Qwen3-VL:30B爬取图文数据到Notion 1. 为什么需要自动化数据收集 上周我需要整理一批行业报告中的关键图表和结论&#xff0c;手动复制粘贴了3个小时后&#xff0c;突然意识到&#xff1a;这种重复性工作正是AI该解决的问题。于是我开始尝试…...

辅助用电系统安装:工业项目电力配套的关键环节问题全解析

在工业厂房、园区配套、商业综合体、仓储物流中心以及各类生产型项目中&#xff0c;很多人一提到电气工程&#xff0c;第一反应往往是高压配电、变压器、动力柜或者主供电系统。但真正决定项目是否“好用、稳用、久用”的&#xff0c;往往不是主系统本身&#xff0c;而是隐藏在…...

DeEAR语音情感识别部署教程:NVIDIA GPU显存优化技巧(<4GB显存可运行)

DeEAR语音情感识别部署教程&#xff1a;NVIDIA GPU显存优化技巧&#xff08;<4GB显存可运行&#xff09; 1. 引言 你有没有想过&#xff0c;让电脑听懂我们说话时的情绪&#xff1f;是开心、平静&#xff0c;还是激动&#xff1f;今天要聊的DeEAR&#xff0c;就是一个专门…...