社区
贺利坚的课程社区_NO_2
数据结构基础系列(9):排序
帖子详情
归并排序
迂者-贺利坚
烟台大学计算机学院教师
领域专家: 系统编程技术领域
2023-01-12 13:51:29
课时名称
课时知识点
归并排序
...全文
92
回复
打赏
收藏
归并排序
课时名称课时知识点归并排序
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
归并排序
与原地
归并排序
归并排序
的思想:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两归并,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2-路
归并排序
。其核心操作是将一个一维数组的前后相邻的两个子序列合并为一个有序序列。下图为一个2路
归并排序
的例子。
归并排序
与自然
归并排序
1.归并的缺点在于需要O(N)的空间复杂度,
归并排序
的思考更多的是解决在磁盘中的外排序问题2.时间复杂度:O(N * logN)3.空间复杂度:O(N)4.稳定度:稳定.1.这玩意的思路相比于其它排序其实特别恶心,在生产环境中非常不建议使用,你的项目组成员可能会骂街(除非是这种情况:就比如你的数据结构老师心血来潮让你讲这个,那你也没办法...)2.时间复杂度:遍历了一次:O(n)3.空间复杂度:O(n)
归并排序
的一些拓展应用
归并排序
的一些拓展问题, 包含小和问题, 逆序对问题, 翻转对问题, 区间和的个数问题.
归并排序
算法、多路
归并排序
base case:if(left>=right) return;
归并排序
左半边,
归并排序
右半边,合并 void merge_sort(vector<int> &nums,vector<int> reg,int start,int end){ if(start>=end) return ; int mid=(end-start)/2+start; int start1=start,end1=mid; int start2=mid+
链表的
归并排序
链表的
归并排序
是一种高效、稳定的排序算法,非常适合链表这种数据结构。通过分治思想,将链表不断分割并合并,实现了对链表的排序。
贺利坚的课程社区_NO_2
1
社区成员
121
社区内容
发帖
与我相关
我的任务
贺利坚的课程社区_NO_2
烟台大学计算机学院教师,坚持教育情怀,持续进行教学改革。和学生并肩,与不良学风作斗争,为IT菜鸟建跑道,追求快乐与激情的大学。著书《逆袭大学:传给IT学子的正能量》,帮助迷茫中的大学生。
复制链接
扫一扫
分享
社区描述
烟台大学计算机学院教师,坚持教育情怀,持续进行教学改革。和学生并肩,与不良学风作斗争,为IT菜鸟建跑道,追求快乐与激情的大学。著书《逆袭大学:传给IT学子的正能量》,帮助迷茫中的大学生。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章