1089. Insert or Merge 解析
来源:互联网 发布:网络蔬菜超市 编辑:程序博客网 时间:2024/06/06 16:40
插入排序还是归并排序。
插入排序比较好鉴别,不是插入就是归并排序。
注意样例里面是没有相等的数的,但是评分的里面有,所有鉴别插入排序的时候 记得是小于等于
#include <iostream>#include <algorithm>#define MAX 110using namespace std;int n;int org[MAX], part[MAX];int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> org[i];}for (int i = 1; i <= n; i++) {cin >> part[i];}int p = 1;while (p <= n && part[p - 1] <= part[p]) p++;int pos = p;while (p <= n && part[p] == org[p])p++;if (p == n + 1) {cout << "Insertion Sort" << endl;sort(part, part + pos + 1);cout << part[1];for (int i = 2; i <= n; i++) {cout << " " << part[i];}cout << endl;}else {//mergeint len = 2;while (len <= n) {for (int i = 1; i <= n; i = i + len) {if (i + len <= n ) {sort(org + i, org + i + len);}elsesort(org + i, org + n + 1);}int p = 1;while (p <= n && org[p] == part[p])p++;len *= 2;if (p == n + 1) {break;}}//排序for (int i = 1; i <= n; i = i + len) {if (i + len <= n ) {sort(part + i, part + i + len);}elsesort(part + i, part + n + 1);}cout << "Merge Sort" << endl;cout << part[1];for (int i = 2; i <= n; i++) {cout << " " << part[i];}cout << endl;}return 0;}
0 0
- 1089. Insert or Merge 解析
- 1089.Insert or Merge
- 1089. Insert or Merge
- 1089. Insert or Merge
- 1089. Insert or Merge
- 1089. Insert or Merge
- 1089. Insert or Merge (25)
- PAT 1089. Insert or Merge
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
- maven打包时候将依赖jar包打入
- 运维-JVM监控之线程问题
- SMA、SMB、SMC封装的二极管尺寸区分
- [LeetCode]Best Time to Buy and Sell Stock
- 1089. Insert or Merge 解析
- Linux查看系统信息的一些命令及查看已安装软件包的命令
- 水体提取方法之单波段阈值法升级版
- Same Tree
- JPEG文件格式
- HashMap的用法(两种迭代方法案例)
- Handler编写调试
- 读书笔记--迪米特法则
- SpringMVC整合JPA