1035 插入与归并 (25 point(s))

根据维基百科的定义:

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

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

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

输入格式:

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

输出格式:

首先在第 1 行中输出Insertion Sort表示插入排序、或Merge Sort表示归并排序;然后在第 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

经验总结:

这一题,其实就是考两种排序的基础算法的,这样的题型警示我们,不能因为有了sort函数就不用掌握基本排序算法的实现了,毕竟每种排序算法不同点还是很明显的,出这种对比基础算法的题型就很考验基本功了,所以,扎实基础才是硬道理呐!具体的实现就是最基础的算法实现方式,对比到相同的序列后,再进行一次排序后再退出,其他的就没什么啦~ヾ(*´▽‘*)ノ

AC代码

#include <cstdio>
#include <algorithm>
using namespace std;
int n,c[110];
bool compare(int a[],int b[])
{for(int i=0;i<n;++i)if(a[i]!=b[i])return false;return true;
}
void copy(int a[],int b[])
{for(int i=0;i<n;++i)b[i]=a[i];
}
int insertsort(int a[],int b[],int c[])
{int flag=0;for(int i=1;i<n;++i){int j=i;int temp=c[j];while(temp<c[j-1]&&j>=1){c[j]=c[j-1];--j;}c[j]=temp;if(flag==1)return 1;if(compare(c,b)){flag=1;}}return 0;
}
int mergesort(int a[],int b[],int c[])
{int d=2;int flag=0;for(int i=d;i/2<=n;i*=2){for(int j=0;j<n;j+=i){sort(c+j,c+min(j+i,n));}if(flag==1)return 1;if(compare(c,b))flag=1;}return 0;
}
void print(int c[])
{for(int i=0;i<n;++i){printf("%d",c[i]);if(i!=n-1)printf(" ");elseprintf("\n");}
}
int main()
{int a[110],b[110];while(~scanf("%d",&n)){for(int i=0;i<n;++i)scanf("%d",&a[i]);for(int i=0;i<n;++i)scanf("%d",&b[i]);copy(a,c);if(insertsort(a,b,c)){printf("Insertion Sort\n");print(c);}else{copy(a,c);mergesort(a,b,c);printf("Merge Sort\n");print(c);}}return 0;
}

PAT 乙级 1035  插入与归并相关推荐

  1. PAT乙级(1035 插入与归并)

    PAT乙级 1035 插入与归并 解题思路 代码 详细题目见官网 大意:给定序列,第一行为原始序列,第二行为某种排序产生的中间序列 输出结果: 第一行,输出是 插入排序 还是 归并排序 第二行,给出该 ...

  2. C++学习之路 | PTA乙级—— 1035 插入与归并 (25 分)(精简)

    1035 插入与归并 (25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直 ...

  3. 【2020模拟考试T5】【PAT乙】1035 插入与归并 (25分) 两种排序的sort写法

    problem 1035 插入与归并 (25分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位 ...

  4. 1035. 插入与归并(25)

    1035. 插入与归并(25)根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元 ...

  5. 1035 插入与归并(C++)

    题目详情 1035 插入与归并 (25分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如 ...

  6. 【简便解法】1035 插入与归并 (25分)_37行代码AC

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插 ...

  7. 1035. 插入与归并(25)-浙大PAT乙级真题

    根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序进行如下迭代 ...

  8. 【PAT乙级】1035 插入与归并 (25 分)

    题目地址 最终的精简版 #include<bits/stdc++.h> using namespace std; bool flag; vector<int>a(105,0), ...

  9. PAT (Basic Level) 1035 插入与归并(模拟)

    题目链接:点击查看 题目大意:给出两列数字,问第二列数是由第一列数怎样排序得到的,题目保证答案唯一,并且只有归并排序或插入排序两种选择 题目分析:因为一开始不太了解归并排序和插入排序的特点,所以有点无 ...

最新文章

  1. git 设置有效目录_如何有效使用Git
  2. 腾讯新预训练模型LP-BERT
  3. WPF中获取鼠标相对于屏幕的位置
  4. LocalDateTime - Java处理日期和时间
  5. 你知道自己执行的是哪个jre吗?
  6. 关于微信,运营商们就这点志向?
  7. java的基本结构_【Java基础】基本程序设计结构
  8. html如何把上边角做成椭圆,使用css3的border-radius和border制作半圆、三角、椭圆等各种图形...
  9. 【读书笔记《Android游戏编程之从零开始》】3.Android 游戏开发常用的系统控件(Button、Layout、ImageButton)
  10. vue canvas 连线带箭头
  11. php通用补丁,PHP受权验证系统V2.1完整版 带补丁包
  12. 计算机ram rom,ROM和RAM区别是什么?
  13. hsql导入mysql_关于HSQLDB访问已有数据库文件的操作说明
  14. 阿里总参谋长曾鸣:区块链中没有绝对的“去中心化”
  15. 毕业设计-基于微信小程序的“助农”销售系统
  16. HP DL380 G7安装部署VM ESXI6.5.0
  17. ubuntu16.04安装GNU Radio
  18. Error: Cannot find module ‘node-sass‘ Require stack:
  19. OpenGLES---设置获取Shader程序属性
  20. 计算机编程语言中表示文本的一种数据类型,VBA代码中可用的六种数据类型

热门文章

  1. 安装黑群晖,打开群晖助手初始化失败问题,报错35(ESXI6.7虚拟机安装黑群辉最新版DSM6.2.1)
  2. 使用MQTTBox连接Thingsboard
  3. 在一次班会课上的讲话
  4. 如何在AWS上购买云主机
  5. 计算机网络验证型实验
  6. 自动登录校园网代码加入wifi自动搜寻并主动连接部分
  7. 所学所感,贵在坚持。
  8. 爱码哥移动开发平台|让制作app更加便捷
  9. 网关是什么,一文带你快速入门腾讯技术工程
  10. 都匀三中2021高考成绩查询,都匀高考语文指南