PAT乙级 插入与归并(25)
来源:互联网 发布:Mac打开hosts文件 编辑:程序博客网 时间:2024/05/19 16:23
给你一个整数n,代表序列中有n个整数,给出原序列,和排序的一个中间序列.让你判断这个序列是插入排序还是归并排序,思路就是从头遍历到尾,碰到的第一个后面元素比前面元素小的情况将索引记录下来,之后从该索引之后判断排序序列和原始序列是否后面的元素都相同,如果相同则是插入排序,如果出现不同则是归并排序,之后结果还要输出下一个阶段的排序结果,插入排序比较简单,直接比较输出就ok,归并排序就只能一段一段的使用快排进行排序,最后从头到尾遍历输出就ok.
#include "iostream"#include "string"#include "algorithm"#include "vector"using namespace std;int main(){int n;int temp,i,j;int merlen;bool first = 0;bool flag = 0;//0 insert 1 mergecin>>n;vector<int> orinum,sortnum;for(i=0;i<n;i++){cin>>temp;orinum.push_back(temp);}for(i=0;i<n;i++){cin>>temp;sortnum.push_back(temp);}for(i=1;i<n;i++){if(sortnum[i]<sortnum[i-1]){merlen = i;while(i<n){if(sortnum[i]!=orinum[i]){flag = 1;break;}i++;}}if(flag == 1)break;}if(flag == 0){cout<<"Insertion Sort"<<endl;for(i=0;i<n;i++){if(i==merlen)continue;if(i!=0)cout<<" ";if(sortnum[merlen]<sortnum[i]&&first == 0){first = 1;cout<<sortnum[merlen];cout<<" ";}cout<<sortnum[i];}}else {cout<<"Merge Sort"<<endl;for(i=0;i<(n/(merlen*2));i++){sort(sortnum.begin()+(i*merlen*2),sortnum.begin()+((i+1)*merlen*2));}for(i=0;i<n;i++){cout<<sortnum[i];if(i!=n-1)cout<<" ";}}return 0;}
0 0
- PAT乙级 插入与归并(25)
- PAT-乙级-1035. 插入与归并(25)
- PAT 乙级 1035. 插入与归并(25)
- PAT乙级 1035. 插入与归并(25)
- PAT 乙级 1035. 插入与归并(25)
- [PAT乙级]1035. 插入与归并(25)
- PAT乙级1035. 插入与归并(25)
- pat 乙级 1035. 插入与归并(25)
- PAT乙级-1035 插入与归并(25)
- PAT乙级 1035. 插入与归并(25)
- PAT乙级—1035. 插入与归并(25)-native
- 1035. 插入与归并(25)-浙大PAT乙级真题
- PAT乙级别.1035. 插入与归并(25)
- 1035. 插入与归并(25) PAT乙级真题
- PAT 乙级 1035. 插入与归并
- PAT乙级练习题B1035. 插入与归并
- [PAT-乙级]1035.插入与归并
- PAT乙级 1035. 插入与归并(25)--模拟插入归并算法
- 【iOS开发-1】AppIcon图标的尺寸,绘制,命名规则以及怎么回到HOME界面查看效果?
- Android APP增量更新
- Unity5 (5.0-5.2) Shader编译机制初探 - 小心,Shader在吞噬你的内存
- 一些关于并行计算的科研思路
- 监督学习之广义线性模型——Andrew Ng机器学习笔记(三)
- PAT乙级 插入与归并(25)
- nodejs连接mongo数据库
- hdu 1394 Minimum Inversion Number 线段树
- js 动态生成宽度固定的table控件
- 获取验证码的按钮状态变化的实现
- apache2.4 的mpm配置
- 15年12月19日初中提高模拟赛总结
- bzoj 4352 tower
- oracle服务器迁移后注意事项