问题 B: 基础排序III:归并排序
2024-09-06 21:07:10
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
void merge(int a[], int l1, int r1, int l2, int r2) {
int i = l1, j = l2;
int n = r2 - l1 +1;
int temp[n];
int index = 0;
while (i <= r1 && j <= r2) {
if (a[i] == a[j]) {
temp[index++] = a[i++];
} else if (a[i] < a[j]) {
temp[index++] = a[i++];
} else {
temp[index++] = a[j++];
}
}
while (i <= r1) temp[index++] = a[i++];
while (j <= r2) temp[index++] = a[j++];
for (int i1 = 0; i1 < n; ++i1) {
a[l1 + i1] = temp[i1];
}
}
void merge_sort(int a[], int left, int right) {
if (left < right) {
int mid = left + (right - left) / 2;
merge_sort(a, left, mid);
merge_sort(a, mid + 1, right);
merge(a, left, mid, mid + 1, right);
}
}
int main() {
int n;
while (scanf(" %d", &n) != EOF) {
for (int k = 0; k < n; ++k) {
int m;
scanf("%d",&m);
int a[m];
for (int i = 0; i < m; ++i) {
scanf("%d", &a[i]);
}
merge_sort(a, 0, m - 1);
for (int j = 0; j < m; ++j) {
printf("%d\n", a[j]);
}
}
}
return 0;
}
最新文章
- 3D坦克大战游戏iOS源码
- nginx 反向代理 配置 https 实现http https同时存在
- JAVA基础中的注意点
- google搜索技巧
- PL/SQL创建数据表空间
- Java基础(56):Java---Assertion的试用(华为OJ里的Java题目的用例检测就是用的断言)
- grade web的构建约定 convention
- qml自定义标题栏
- ORACLE DATAGURARD 折腾记二
- HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
- RedHat7上安装PHP
- wamp虚拟机配置
- 笔记:Hibernate 查询缓存
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 浅析Spring
- Windows Server 2016-域站点链接及复制时间调整
- C++ Primer Plus (Stephen Prata 著)
- 单页面登录——编码传参(oa会对#号会进行截断)
- sqlmap的使用
- PHP中工厂模式与策略模式区别
热门文章
- Part1-解线性方程组
- Oracle11G DG 搭建及管理
- 达梦数据库-RAC-DMDSC部署的关键点
- Webpack中hash、chunkhash和contenthash三者的区别
- Linux监控-历史细项数据回溯
- cir from c# 托管堆和垃圾回收
- 利用Graphics的截图功能CopyFromScreen
- win10安装两个不同版本的mysql(mysql5.7和mysql-8.0.19)
- 此Flash Player 与您的地区不相容,请重新安装Adobe Flash Player问题解决
- Leetcode字典树-720:词典中最长的单词