【归并排序】基础代码
🍋前言
最近在学习分治法,涉及到之前学习的归并排序,当时学习数据结构的时候就归并排序背后的内容没有深究,过去留下的问题,在现在的使用中展现出不足,写下一些学习中的总结和思考,认真探讨归并排序。
🤔算法思想
归并排序是是分治法思想的典型代表,根据分治法的思想可以分为以下过程
1.划分:将待排序序列划分1n划分成为两个长度相等的子序列1n/2和n/2+1到n
2.求解子问题:分别对这两个子序列进行排序,的到两个有序的子序列
3.合并:将这两个有序子序列合并成一个有序序列
⭐️如何代码实现
首先要将原始的序列划分成为两个子序列,对于划分后的左右序列也要采用同样的策略进行划分,因此可以采用递归的方式去调用,当划分到的序列只有一个记录的时候,算是递归出口(因为一个记录本身就是有序的),划分的结果是将n个记录的待排序序列划分成n个长度为1的有序子序列;接下来需要进行合并操作,合并的时候由于是在原数组上进行排序操作,需要一个辅助数组来暂存当前排序好的元素,合并是对当前的两个子序列进行合并,基本思路和数据结构中的合并两个有序数组一样,通过由1个记录之间的合并到整个左序列和整个右序列之间的合并,最后得到的就是排序好的序列。
💻代码
🙈结尾
这里列举的只是2路归并排序,算法描述的还不够清晰,还有代码优化也没有实现,等有时间再补充其他内容。
2022年3月11日15:44:11
__EOF__

本文作者:lnnau
本文链接:https://www.cnblogs.com/wlunan/p/18538051.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/wlunan/p/18538051.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?