1. 这一题,首先要会插入排序和归并排序的写法。对于归并排序,可以用非递归+sort最简便。把每一趟的结果存进二维数组。

2. 单独封装一个函数,比较两个一维数组是否完全一样。

3. 由于归并比插入的复杂度低,趟数少,所以先判断归并排序。

AC代码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
#include<stdlib.h>
#include<time.h>using namespace std;
typedef long long LL;const int maxn = 10000;
const int INF = 1000000000;//INF:下确界
const LL SUP = (1LL<<63)-1;//SUP:上确界
const double eps = 1e-5;//n是数组长度、元素从0开始
int insertSort(int I[],int n,int insert[maxn/2][100]){//插入排序int t = 0;for(int i=1;i<n;i++){int temp = I[i],j=i;while(j>0&&temp<I[j-1]){I[j] = I[j-1];j--;}I[j] = temp;//每一趟结束,将结果存进insert数组for(int k=0;k<n;k++){insert[t][k] = I[k];}t ++;}return t;
}int mergeSort(int M[],int n,int merge[100][100]){//非递归的归并排序 int t = 0;for(int step=2;step/2<n;step*=2){for(int i=0;i<n;i+=step){sort(M+i,M+min(i+step,n));}//每一趟结束,将结果存进merge数组for(int i=0;i<n;i++){merge[t][i] = M[i];}t ++;    }return t;
}bool ifSame(int A[],int B[],int n){//比较一维数组A和B是否相等,n为元素个数for(int i=0;i<n;i++){if(A[i]!=B[i])return false;} return true;
}int main(){int merge[100][100];int insert[maxn/2][100];int M[100],I[100];//分别存放排序过程,传入需要排的序列int init[100],process[100];//存放读入的数组和过程数组int n;scanf("%d",&n);for(int i=0;i<n;i++){//读入原始数组 scanf("%d",&init[i]);}for(int i=0;i<n;i++){//读入过程数组 scanf("%d",&process[i]);}//将原始数组分别存入M和Ifor(int i=0;i<n;i++){M[i] = init[i];}for(int i=0;i<n;i++){I[i] = init[i];} //分别进行插入排序和归并排序int insert_t = insertSort(I,n,insert);int merge_t = mergeSort(M,n,merge); //进行比对,由于归并排序的过程数少一些,放在前面for(int i=0;i<merge_t;i++){if(ifSame(process,merge[i],n)){printf("Merge Sort\n");for(int j=0;j<n;j++){printf("%d",merge[i+1][j]);if(j!=n-1)printf(" ");}return 0;}}//插入排序比对for(int i=0;i<insert_t;i++){if(ifSame(process,insert[i],n)){printf("Insertion Sort\n");for(int j=0;j<n;j++){printf("%d",insert[i+1][j]);if(j!=n-1)printf(" ");}return 0;}} return 0;
}

1035 插入与归并相关推荐

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

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

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

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

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

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

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

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

  5. PAT 乙级 1035  插入与归并

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

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

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

  7. 1035 插入与归并 (25 分)(c++)

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

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

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

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

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

最新文章

  1. 智慧健康,协同发展:清华大学携手天津市共同探索健康医疗大数据
  2. 字符串拷贝函数memcpy()、strncpy()和snprintf()性能之比较
  3. 高德地图怎么搜索marker_2018-07-06 高德地图搜索定位,滑动地图显示周边信息,根据地址搜经...
  4. RHEL5 怎么装vim
  5. C#连接Oracle中文乱码问题解决方法
  6. robocopy 备份_Windows 7系统强大的复制命令robocopy的操作方法介绍
  7. 【盘点】python最常用的快捷键,一定要收藏!
  8. 警告怎么去除Reports empty tag body. The validation works in XML / JSP / JSPX / HTML/ XHTML file types
  9. 电视机芯片介绍-海思Hi3751 V600
  10. c语言实现AD采样后FFT算法,实践“玩转FFT算法...任你移植”,正确AD采样及生成函数表...
  11. ARTS打卡10-抓住海森堡Bug
  12. Windows系统文件结构
  13. java浏览器插件开发,如何获取Windows的IcedTea浏览器插件(OpenJDK浏览器Java插件)?
  14. 如何计算离职率(2)?
  15. LTE Attach
  16. 【音乐】如果历史是一群喵主题曲钢琴弹奏
  17. 物料编码的方法与技术
  18. 【2017.10.08 智能驾驶/汽车电子】汽车电控常用英文缩写及功能之一
  19. Android性能优化系列之apk瘦身
  20. 用HTML制作一个注册界面

热门文章

  1. Java 使用 Redis
  2. C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。...
  3. 【布局】圣杯布局双飞翼布局
  4. android Intent PendingIntent的区别
  5. UpdateData函数(转)
  6. 【分享几个日常巡检 监控数据库的语句】
  7. pthred()多线程计算派
  8. 数位DP 不断学习中。。。。
  9. 亲 , Zookeeper了解一下 : 概述
  10. 如何在SAP云平台上使用MongoDB服务