PAT (Advanced Level) 1098. Insertion or Heap Sort (25)
简单题。判断一下是插排还是堆排。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std; const int maxn=;
int a[maxn],b[maxn],n; int main()
{
memset(b,-,sizeof b);
scanf("%d",&n);
for(int i=; i<=n; i++) scanf("%d",&a[i]);
for(int i=; i<=n; i++) scanf("%d",&b[i]); int flag=; int p=n+;
for(int i=; i<=n; i++)
if(b[i]<b[i-])
{
p=i;
break;
} for(int i=p; i<=n; i++)
{
if(a[i]==b[i]) continue;
else flag=;
} if(flag==)
{
printf("Insertion Sort\n");
if(p==n+) p=n;
sort(a+,a+p+);
for(int i=; i<=p; i++)
{
printf("%d",a[i]);
if(i<n) printf(" ");
else printf("\n");
}
for(int i=p+; i<=n; i++)
{
printf("%d",a[i]);
if(i<n) printf(" ");
else printf("\n");
}
}
else
{
printf("Heap Sort\n");
sort(a+,a++n);
for(int i=n; i>=; i--)
{
if(a[i]==b[i]) p=i;
else break;
} swap(b[],b[p-]); int i=;;
while()
{
if(*i<p-&&*i+<p-)
{
if(b[i]<max(b[*i],b[*i+]))
{ if(b[*i]>b[*i+])
{
swap(b[*i],b[i]);
i=*i;
}
else
{
swap(b[*i+],b[i]);
i=*i+;
}
}
else break;
}
else if(*i<p-)
{
if(b[i]<b[*i])
{
swap(b[*i],b[i]);
i=*i;
}
}
else break; }
for(int i=; i<=n; i++)
{
printf("%d",b[i]);
if(i<n) printf(" ");
else printf("\n");
}
} return ;
}
PAT (Advanced Level) 1098. Insertion or Heap Sort (25)的更多相关文章
- 【PAT甲级】1098 Insertion or Heap Sort (25 分)
题意: 输入一个正整数N(<=100),接着输入两行N个数,表示原数组和经过一定次数排序后的数组.判断是经过插入排序还是堆排序并输出再次经过该排序后的数组(数据保证答案唯一). AAAAAcce ...
- pat 甲级 1098. Insertion or Heap Sort (25)
1098. Insertion or Heap Sort (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- PAT (Advanced Level) Practise - 1098. Insertion or Heap Sort (25)
http://www.patest.cn/contests/pat-a-practise/1098 According to Wikipedia: Insertion sort iterates, c ...
- PAT Advanced 1098 Insertion or Heap Sort (25) [heap sort(堆排序)]
题目 According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and ...
- PAT甲题题解1098. Insertion or Heap Sort (25)-(插入排序和堆排序)
题目就是给两个序列,第一个是排序前的,第二个是排序中的,判断它是采用插入排序还是堆排序,并且输出下一次操作后的序列. 插入排序的特点就是,前面是从小到大排列的,后面就与原序列相同. 堆排序的特点就是, ...
- 1098. Insertion or Heap Sort (25)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- 1098 Insertion or Heap Sort (25分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- PAT甲级——1098 Insertion or Heap Sort (插入排序、堆排序)
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90941941 1098 Insertion or Heap So ...
- pat1098. Insertion or Heap Sort (25)
1098. Insertion or Heap Sort (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
随机推荐
- QML与Qt C++ 交互机制探讨与总结
介绍 QML和 C++对象可以通过,signals,slots和 属性修改进行交互.对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML(何总方法,后面介绍) ...
- 判断一个值是不是DBNull.Value
C#读取数据库返回DataTable,遍历 DataTable, 在DataRow dr, 假如dr[0]是一个可空的值类型的字段,那么要赋值给C#程序的一个值类型(可空类型变量这里不讨论)变量时, ...
- WEB组件 开发 (未完成 4-13)
整理自真阿当的阿当大话西游之WEB组件,课件中的代码下载. 14. 抽出widget类 组件分两大类: utility(大部分与UI无关的组件) 和 widget(应用层,大部分与UI相关的,日历组件 ...
- HttpUtil工具类
HttpUtil工具类 /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=val ...
- HDU 5778 abs
题意转化一下就是寻找一个数P,要求P质因素分解完后,质因素没有重复,还要保证abs(P*P-x)最小. 暴力,在sqrt(x)附近向下向上分别枚举一下. #pragma comment(linker, ...
- webapp 微信开发适配问题
文章摘自:http://www.cnblogs.com/oksite/p/4630462.html 前段时间由于公司要做微信app 前端主要有我一个人独立开发 分享一下自己独立开发微信app的一些经验 ...
- ReactiveCocoa总结
RAC三部曲,1创建信号,2订阅信号,3发送信号, 信号类: RACSiganl // 1.创建信号 RACSignal *siganl = [RACSignal createSignal:^R ...
- WKWebView与Js交互
首先打开webstorm,将最下面h5拷贝到html中.然后导入工程 #define kMessageHandlerName @"mymobile" 1.创建配置类 - (WKWe ...
- Windows server 2008搭建php运行环境
下载php组件包 首先到http://windows.php.net/download/下载你需要的php版本,这里我下载的是php5.3. 下面解压php组件 包到磁盘上. 安装Microsoft ...
- 《JS权威指南学习总结--3.8类型转换》
JS数据类型转换方法主要有三种: 转换函数.强制类型转换.利用js变量弱类型转换. 一.转换函数 parseInt()和parseFloat()两个转换函数. ...