考研算法31天:归并排序 【归并排序,分治】

算法介绍

归并算法其过程分为三步:

1.分:递归到最下面

2.治:两个元素之间排序。

3。归:递归到最下层然后返回,从两个元素变成四个元素再排序。

如下图所示:

动态图如下:

算法题目

算法ac代码:

#include <iostream>using namespace std;const int N = 1000010;
int q[N], w[N];void merge_sort(int left,int right){//向下递归if(left>=right) return;int mid = (left + right)>>1;merge_sort(left,mid),merge_sort(mid+1,right);
//分到只有两个的的时候开始递回int l = left, r = mid+1;int i=0,j;
//将排序好的数组片段先放到其他数组中去while(l<=mid&&r<=right){// cout<<"q[l]:"<<q[l]<<"q[r]:"<<q[r]<<endl;if(q[l]<q[r]) w[i++] = q[l++];else w[i++] = q[r++];}
//如果左边或者是右边没有全部放入证明是最大的几个数,依次放入即可while(l<=mid) w[i++] = q[l++];while(r<=right) w[i++] = q[r++];
//将排序好的数组片段放回原先的数组中去,片段数组排序结束for(i=0,j=left;j<=right;i++){q[j++] = w[i];}return;
}
int main(){int n;cin>>n;for(int i=0;i<n;i++)scanf("%d",&q[i]);merge_sort(0,n-1);for(int i=0;i<n;i++)printf("%d ",q[i]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/656.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式】模板方法与策略模式的结合使用

文章目录 1. 概述1.1.简述模板方法 2.模板方法实现2.1.简单实现2.2.在SpringBoot中的实现 3.模板方法与策略模式的结合使用3.1.代码实现 4.总结 1. 概述 模板方法是一种非常简单的设计模式&#xff0c;只要能够理解面向对象中的继承与多态就能够理解这种设计模式&#xff0c;我…

Spark中python和jvm的通信杂谈--ArrowConverter

背景 要提起ArrowConverters&#xff0c;就得说起Arrow这个项目&#xff0c;该项目的初衷是加速进程间的数据交换&#xff0c;从目前的社区发展以及它的周边来看&#xff0c;其实是一个很不错的项目。 那为什么Spark要引入Arrow呢&#xff1f;其实还得从Pyspark中python和jvm的…

购物车业务

一、分析购物车vo &#xff08;1&#xff09;添加成功页 public class CartItemVo implements Serializable {/*** 商品id*/private Long skuId;/*** 是否选中*/private Boolean check true;/*** 商品标题*/private String title;/*** 商品图片*/private String image;/***…

【Docker】Docker运行时间长,空间不足no space left on device: unknown

空间不足no space left on device: unknown问题解决 1.执行出错2.解决方法3.dump文件是否可以删除 1.执行出错 在运行 docker restart 容器Id查看磁盘空间占用 df -h2.解决方法 这个问题是由与 /run 的空间使用完了&#xff0c;清理/run的空间,经过查找使用最大的是 /run/u…

Windows服务启动exe无界面终极解决方案

1、前言 我这个方案&#xff08;C#操作&#xff09;是彻底解决【从Windows服务启动程序exe&#xff0c;程序无界面】问题的终极解决方案&#xff0c;终极方案&#xff0c;绝对的终极方案&#xff0c;本来打算收钱的&#xff0c;还是算了&#xff0c;你们也不容易&#xff0c;关…

【前端工程化】深入浅出vite(二)--vue3全家桶+ts构建后管系统

安装基础包 npm create vitelatest # 这里选择的是VueTypescript的组合 cd vue-admin npm install# 先安装基础包 npm install vue-router4 npm i pinia npm i axios npm install sass --save-dev npm install element-plus --save npm install element-plus/icons-vue npm in…

如何访问NetApp E系列存储的CLI命令行

NetApp存储的E系列&#xff08;e-series&#xff09;是收购LSI存储而来的&#xff0c;所以这个产品的install base&#xff0c;也就是安装量其实是很大的&#xff0c;因为早期LSI的商业模式就是OEM&#xff0c;给很多的IT公司做过OEM&#xff0c;比较典型的就是IBM的早期的DS存…

浅谈电瓶车充电桩运营方案 安科瑞 许敏

1. 概述 电动车火灾事故频频发生&#xff0c;毫不起眼的电动车屡次引发夺命大火&#xff0c;电动车已然成为火灾“重灾区”。为预防和遏制电动自行车火灾事故发生&#xff0c;三令五申各种政策&#xff0c;为此安委会曾出台《电动自行车集中停放和充电治理方案》。 大部分充电过…

MySQL日志管理、备份与恢复

文章目录 MySQL日志管理、备份与恢复1 MySQL日志管理1.1 日志的分类1.2 日志的配置1.3 日志查询1.3.1 查看通用查询日志是否开启1.3.2 查看二进制日志是否开启1.3.3 查看慢查询日志功能是否开启1.3.4 查看慢查询时间设置1.3.5 在数据库中设置开启慢查询的方法 2 数据备份2.1 数…

freemarker 使用word模板赋值

1. 引包<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>word文档工具类import freemarker.template.Configuration; import freemarker.template.…

数据库实验-图书销售管理系统数据库安全管理

一、实验二&#xff1a;图书销售管理系统数据库安全管理 三、实验目的 了解该DBMS系统对数据库管理的内容与方法&#xff0c;特别是理解数据库安全机制和作用&#xff0c;以及PostgreSQL数据库角色管理、用户管理、权限管理的基本方法&#xff0c;培养数据库管理能力。在图书…

Mysql(Linux数据库或者在Navicate中)

Mysql数据库组成 服务端:主要存储数据,并接收用户发过来的SQL语句,并执行结果返回给客户端 客户端:下发用户要执行的sql语句,并显示服务器返回的执行结果 命令行数据库连接方式 mysql -h 数据库 IP -P 端口号 -u 数据库登录用户名 -p 数据库登录密码 -h不加表示为本机,-P不…