归并排序其实就是一个简简单单的递归分治,话不多说,直接上代码

#include <bits/stdc++.h>using namespace std;int n;
int arr[200005];
int brr[200005];void merge_sort(int left,int right){     //参数为每次拆分的左右边界 if (left >= right) return;     //当左右边界重合时,设置边界 int c = (left + right) / 2;      //计算中间点 merge_sort(left,c);      //对左半部递归 merge_sort(c + 1,right);     //对右半部递归int x = left,y = c + 1,z = left;     //合并时三个数组的下标while (x <= c && y <= right){     //只要左右任意一边去数字,就结束循环 if (arr[x] < arr[y]) brr[z++] = arr[x++];     //将少的数字放在新数组中 else brr[z++] = arr[y++];}//将剩余数字直接平移到新数组中汇总 while (x <= c) brr[z++] = arr[x++];while (y <= right) brr[z++] = arr[y++];for (int i = left;i <= right;i++) arr[i] = brr[i];
}int main(){cin >> n;for (int i = 0;i < n;i++) cin >> arr[i];merge_sort(0,n - 1);for (int i = 0;i < n;i++) cout << arr[i] << " ";return 0;
}

归并排序 代码 + 讲解相关推荐

  1. 手把手教你如何做建模竞赛(baseline代码讲解)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.大赛背景 随着科技发展,银行陆续打造了线上线下.丰富多样的客户触 ...

  2. 【资源】Faster R-CNN原理及代码讲解电子书

    <Faster R-CNN原理及代码讲解>是首发于GiantPandaCV公众号的教程,针对陈云大佬实现的Faster R-CNN代码讲解,Github链接如下: https://gith ...

  3. 激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解

    应用背景介绍 自主导航是机器人与自动驾驶的核心功能,而SLAM技术是实现自主导航的前提与关键.现有的机器人与自动驾驶车辆往往会安装激光雷达,相机,IMU,GPS等多种模态的传感器,而且已有许多优秀的激 ...

  4. 彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

    应用背景介绍 自主导航是机器人与自动驾驶的核心功能,而SLAM技术是实现自主导航的前提与关键.现有的机器人与自动驾驶车辆往往会安装激光雷达,相机,IMU,GPS等多种模态的传感器,而且已有许多优秀的激 ...

  5. 彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

    视觉三维重建 = 定位定姿 + 稠密重建 + surface reconstruction +纹理贴图.三维重建技术是计算机视觉的重要技术之一,基于视觉的三维重建技术通过深度数据获取.预处理.点云配准 ...

  6. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解

    sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...

  7. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  8. 三层代码讲解--第一课

    主题:三层代码讲解--第一课 主持人:老吴 时间:2004-05-24 2004-05-24 10:47:00 天之痕_若虹(86278566) 請教大家一個問題好嗎 2004-05-24 10:47 ...

  9. WPF第一章(XAML前台标记语言(Chapter02代码讲解))

    XAML前台标记语言(Chapter2代码讲解)     很不好意思,工作有点忙,博客停了两天.相对于一门语言的学习,理论知识和实践必不可少,大多数时间我们要用,对于代码也是,一边不行可以看两遍,实在 ...

最新文章

  1. Oracle存储过程(增、删、改)写法
  2. 【AT987】高橋君【组合数】【莫队】
  3. 在windows上使用go编译dll文件,供C++调用
  4. python为什么closed_为什么Python无法解析此JSON数据? [关闭] - Why can't Python parse this JSON data? [closed]...
  5. 如何将字符串数组的空格去除_java中如何将数组转换为List
  6. UIImage(类别)缩放适合范围.
  7. 如何读取二进制图片-.ashx一般处理程序
  8. 正点原子STM32F103 DMA代码例程魔改
  9. undo歌词中文音译_T-ara - Lovey Dovey 罗马拼音+中文歌词+韩文歌词+中文音译
  10. linux触摸屏应用程序开发,linux触摸屏(一)编写触摸屏应用
  11. 美通企业日报 | 三大因素最影响职场女性心理健康;Instagram重要性超过推特脸书...
  12. char字符变量在c语言中有什么用,c语言char怎么用
  13. python连接mysql orm_Python通过ORM方式操作MySQL数据库
  14. Leetcode1278
  15. imx6上调用 vpu
  16. 网页验证码显示在输入框input上的方法
  17. JAVA基础----终弄清java核心技术卷1中的int fourthBitFromRight = (n 0b1000 ) / 0b1000;是怎么回事了。。。
  18. uboot2018.7以上版本bison报错
  19. 输入的英文字母隔得很开
  20. 优秀CTO修炼之道:向上生长,向下兼容

热门文章

  1. 实现用户名、邮箱、手机号三种都可以登录
  2. 51单片机和Arduino有什么区别?
  3. pytorch快速入门与实战——三、Unet实现
  4. kernel_neon_begin
  5. uniapp适配pc_uni-app支持PC版!
  6. MIME类型,Content-Type
  7. codeforces EDU suffix array
  8. java求最短距离,Java实现 LeetCode 821 字符的最短距离(暴力)
  9. win10账号锁定计算机,win10如何设置账户锁定阈值
  10. linux安装python3