#include <bits/stdc++.h>
const int maxn = 100004;
void Merge(int data[], int pd[], int l, int mid, int r)
{
int i, j, k;
i = l; j = mid + 1; k = 0;
while(i <= mid && j <= r) // 合并
pd[k++] = data[i] < data[j] ? data[i++] : data[j++];
while(i <= mid) pd[k++] = data[i++]; // 如果左边剩下了直接放最后
while(j <= r) pd[k++] = data[j++]; // 如果右边剩下了直接放最后
for(k = 0, i = l; i <= r; i++, k++)
data[i] = pd[k]; // 将[l,r] 区间排好后放回原数组空间
}
void MergeSort(int data[], int pd[], int l, int r)
{
int mid;
if(l < r) {
mid = (l + r) >> 1; // 将区间划分为左右两部分
MergeSort(data, pd, l, mid); // 对左边部分进行归并排序
MergeSort(data, pd, mid+1, r); // 对右边部分进行归并排序
Merge(data, pd, l, mid, r); // 合并左右排序的结果
}
}
int a[maxn];
int tmp[maxn]; //辅助空间
int main(){
int n;
while (scanf("%d",&n)!=EOF){
for (int i = 0; i < n; ++i){
scanf("%d",&a[i]);
}
MergeSort( a, tmp, 0, n-1 );
for (int i = 0; i < n; ++i){
printf("%d\n",a[i]);
}
}
return 0;
}
相关推荐
C++模板归并排序
C++模板实现归并排序
初级排序
选择排序(每一趟选出一个最大/最小记录,与序列的首个/最后一个记录交换) 最简单选择排序思路:从头到尾顺序扫描,选出最小的和第一个交换,从接下来的记录重复上述步骤 voidselectSort(int[] R){ intn=R.lenth; for(inti=0;i intmin=i; //将a[i]和a[i+1...n]中最小元素交换 for(intj=i+1;j if(R[
归并排序模板
此系列博客为博主在AcWing算法基础课的学习笔记,不足之处欢迎批评指正,本文为归并排序。
Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序
这里给出分治语义的一种通用性实现:def divide_and_conquer(S, divide, combine): if len(S) <= 1: return S L, R = divide(S) A = divide_and_conquer(L, divide, combine) B = divide_and_conquer(R, divide, combi
CRMEB商城系统任意文件下载漏洞(CVE-2024-52726)分析与修复
在Web应用安全领域,API接口安全是保障系统边界安全的核心环节。其原理在于通过签名验证、参数校验等机制,确保请求的合法性与完整性。这项技术的价值在于为系统间数据交互提供安全通道,防止未授权访问和数据泄露。典型的应用场景包括电商系统的对外数据接口、第三方服务集成等。然而,当签名验证逻辑存在缺陷或文件路径处理不当,便会引发严重的安全风险。本文以CRMEB开源商城系统为例,深入剖析其对外API模块中因签名验证绕过和路径遍历导致的任意文件下载漏洞。该漏洞允许攻击者下载服务器敏感文件,如数据库配置文件、日志和源码,
利用 vivado实现加减法器的设计
本科计组实验:利用 vivado实现加减法器的设计
IP协议学习一
IP协议是英文Internet Protocol的简称,IP协议提供的是一种无连接、不可靠的传输服务。1.不可靠表示IP协议尽可能的将数据包准确送达目的地,并不保证数据包成功地送达目的地。由于一些可能出现的网络故障,或者某些出现某些错误都有可能导致IP数据包被丢弃。所以要保证数据包准确的送达目的地,需要上层协议提供服务。2.无连接表示IP协议并不会对后续的数据传输,维护任何的状态信息,也就是说每一...
Meta-World环境实战解析:pick-place-v2中的状态观测与动作控制
本文深入解析了Meta-World中pick-place-v2环境的强化学习实战要点。文章详细拆解了39维状态观测向量的构成与意义,包括机械臂末端、物体位置及目标坐标,并揭示了默认部分可观测设置的潜在影响。同时,阐述了4维动作空间的控制逻辑与奖励函数的分阶段设计,为训练高效稳定的抓放策略提供了核心指导与实用调优技巧。
基于tcpdump实例讲解TCP/IP协议
前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲解客户端和服务端的TCP/IP交互细节。 TCP/IP协议 IP头和TCP头格式如下: Internet Header Format 0 1 ...
动态表单设计
自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。
逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数
本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。
个人学习记录:归并排序模板
项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: @Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, b
目标检测: yolo26在RK3588上部署
YOLO26发布:端到端目标检测新突破 摘要:Ultralytics最新发布的YOLO26算法采用原生端到端设计,无需NMS后处理,显著提升推理效率。该模型基于三大核心原则: 简洁性:消除NMS步骤,实现直接预测 部署效率:简化集成流程,降低延迟 训练创新:引入MuSGD混合优化器,加速收敛 部署教程显示,YOLO26可适配RK3588等边缘设备,通过ONNX转换和RKNN工具链实现高效部署。其创新架构特别优化了分割、姿态估计等专业任务,标志着目标检测技术的重要革新。 (字数:149)
归并排序及模板
文章目录归并排序理解归并排序模板 归并排序理解 归并排序的主要操作如下: (1)分解。把初始序列分成长度相同的左、右两个子序列,然后把每个子序列再分成更小的两个子序列,直到子序列只包含一个数。这个过程用递归实现。 (2)求解子问题,对子序列排序。最底层的子序列只包含一个数,其实不用排序。 (3)合并。归并两个有序的子序列,这是归并排序的主要操作。比如下面举例,把a[ ]分成两个子序列,比较后存进b...
基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab
其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
归并排序模板以及求解逆序对模板
归并排序: #include<iostream> using namespace std; int num[1005]; //输入数组&答案数组 int temp[1005]; //中转数组 void merge(int l,int r,int mid) { int i=l,j=mid,p=l; while(i<mid&&j<r)//左右两边打擂 { if(num[i]<num[j])//左边输了(左边比较小) temp[p++]
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
算法模板:归并排序【沈七】
一文带你 深入了解归并排序的原理!
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
归并排序【图解及模板】
归并排序的实现,附上图解帮助理解
归并排序实现思想及代码模板
归并排序思想: ①划分:将进入方法的数组划分为两部分 ②递归:递归继续划分,直到个数为1 ③合并:根据值的大小来合并,小的先放入合并的数组当中。 例如:1, 1, 7, 3, 4, 5, 9, 8, 3 一直递归到底层 划分为{ 1 , 1 } { 7 } { 3 , 4 } { 5 , 9 } { 8 , 3 } 合并{ 1 , 1 , 7 } { 3 , 4 } { 3 , 5 , 8 , 9} 合并{ 1 , 1 , 3 , 4 , 7 } { 3 , 5 , 8 ,...
c++ 归并排序 - 模板函数写法
归并排序 - 模板函数写法 // merge_sort.cpp #include <iostream> #include <vector> #include "../head_file/template_head.h" using namespace std; void merge_sort() { cout << "Merge Sort!!!" << endl; vector<int> list = { 8,9,1,7,2,3,5,4,6
一文读懂『归并排序』算法(Merge Sort)(含算法模板)
一文读懂『归并排序』算法(Merge Sort)(含算法模板)
[排序] 快速排序、归并排序模板(模板)
文章目录0. 前言1. 快速排序2. 归并排序 0. 前言 正经人谁手写这玩意? 1. 快速排序 785. 快速排序 本质: 分治。是不稳定的排序算法。 时间复杂度:O(nlogn)O(nlogn)O(nlogn) 空间复杂度:O(logn)O(logn)O(logn),基于递归,用到栈空间 模板注意点: 注意点就是不要随便改动里面的任何一个下标… 快排边界情况很多很多,这是个经过千锤百炼的模板代码,理解算法思想后背过模板就行了 基准值 int x = q[l+r>>1],写成 int x
1260



被折叠的 条评论
为什么被折叠?



