当前位置: 首页 > news >正文

【CPP】归并排序

目录

  • 1.归并排序
    • 简介
    • 代码
    • 分析
    • 归并的非递归形式

1.归并排序

归并排序(MERGE-SORT) 是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并

归并分割的意义:把整个数组分割为以个为单位。

简介

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

分析

时间复杂度:O(N*logN)
空间复杂度:O(N)

归并的非递归形式

归并非递归形式可以用栈吗?
**不适合用栈。**原因在于快排用栈本质上是因为快排是一种前序遍历,遍历完之后就不需要再管原来的区间了,但是归并是先分而后并,是一种后序遍历, 栈很难控制,问题在于递归之后回不去了。

那如何解决?直接省略递归分割过程,直接去模拟回归的过程。

在这里插入图片描述

我们发现:
归并是消耗空间复杂度O(N)的,由于归并的这一特性可以做外排序(外排序就是在内存外即硬盘中进行排序)。


EOF

相关文章:

  • 网络知识 思维导图
  • MQTT协议与TCP/IP协议在性能上的区别
  • React AntDesign Layout组件布局刷新页面错乱闪动
  • c#音乐播放器续(联网下载)
  • 【驱动篇】龙芯LS2K0300之单总线驱动
  • 越复杂的CoT越有效吗?Complexity-Based Prompting for Multi-step Reasoning
  • 长亭谛听教程部署和详细教程
  • 【Android面试八股文】你能说一说在平常开发过程中你是如何解决事件冲突问题的吗?
  • 虚幻UE5发送 get、post 请求、读取 json 文件
  • 深入浅出Java的函数式编程
  • 【Vite】控制打包结构
  • 解析Java中1000个常用类:AbstractSet类,你学会了吗?
  • spring 、springboot 运行的原理、理解、分析
  • Pnpm:包管理的新星,如何颠覆 Npm 和 Yarn
  • 四川汇聚荣科技有限公司怎么样?
  • ES6指北【2】—— 箭头函数
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Android Volley源码解析
  • Java基本数据类型之Number
  • Linux CTF 逆向入门
  • MySQL QA
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • win10下安装mysql5.7
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 设计模式走一遍---观察者模式
  • 如何在招聘中考核.NET架构师
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #nginx配置案例
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #面试系列-腾讯后端一面
  • (1)(1.13) SiK无线电高级配置(五)
  • (2)STL算法之元素计数
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (九)c52学习之旅-定时器
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)c52学习之旅-点亮LED灯
  • (三)终结任务
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (译)2019年前端性能优化清单 — 下篇
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转) RFS+AutoItLibrary测试web对话框
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • . Flume面试题
  • .config、Kconfig、***_defconfig之间的关系和工作原理
  • .NET C# 操作Neo4j图数据库
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net 基于IIS部署blazor webassembly或WebApi
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • @Import注解详解
  • @WebService和@WebMethod注解的用法
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname