社区
数据结构与算法
帖子详情
归并排序的问题
nkorange
2011-07-20 09:35:39
我们在归并两个有序数组的时候,当然时间复杂度是O(m+n),那么能不能改进归并过程使得比较次数减小呢?
...全文
200
8
打赏
收藏
归并排序的问题
我们在归并两个有序数组的时候,当然时间复杂度是O(m+n),那么能不能改进归并过程使得比较次数减小呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cougar0709
2011-07-27
打赏
举报
回复
算法确定了,时间复杂度是一定的,你可以参考算法导论
Golden_Shadow
2011-07-26
打赏
举报
回复
[Quote=引用 4 楼 nkorange 的回复:]
N是多少啊?
引用 3 楼 golden_shadow 的回复:
N = m n. O(N).据我目前所知,作任何额外的处理都会大于这个复杂度。
[/Quote]少打了个'+'。
Golden_Shadow
2011-07-25
打赏
举报
回复
N = m n. O(N).据我目前所知,作任何额外的处理都会大于这个复杂度。
fengjian_428
2011-07-25
打赏
举报
回复
比较次数并不一定是m+n 时间复杂度看做O(N)就够了
如果m远远大于n 可以考虑用二分查找进行排序
比如m为100万 n为100 归并排序的话复杂度为100万
如果二分查找复杂度为100×lg100万=2000
大大减小了时间复杂度
皮熊熊
2011-07-25
打赏
举报
回复
m+n应该是最少的了吧,因为两个数列中任意两个数ai和bi如果不比较的话无法谁知道谁大谁小啊,不知道大小关系就没有办法排序了
nkorange
2011-07-25
打赏
举报
回复
N是多少啊?
[Quote=引用 3 楼 golden_shadow 的回复:]
N = m n. O(N).据我目前所知,作任何额外的处理都会大于这个复杂度。
[/Quote]
nkorange
2011-07-22
打赏
举报
回复
不明白你的意思,我的意思是给定两个长度分别为m和n的有序数组,将这两个数组归并成一个有序数组。通常情况下要O(m+n)次比较,我想知道是否能让比较次数减少?
[Quote=引用 1 楼 kenyyy 的回复:]
我觉得你可以去证明一下,好像每次一半已经是最优的了。。。
至少,对于4个长度为a的数组。
a+a + 2a+a + 3a+a > a+a + a+a + 2a+2a.
[/Quote]
kenyyy
2011-07-20
打赏
举报
回复
我觉得你可以去证明一下,好像每次一半已经是最优的了。。。
至少,对于4个长度为a的数组。
a+a + 2a+a + 3a+a > a+a + a+a + 2a+2a.
Java-十种内部排序实现(选择,冒泡,插入,希尔,堆,归并,快速,基数,计数,桶)源码下载
选择排序 冒泡排序 插入排序 希尔排序 堆排序
归并排序
快速排序 基数排序 计数排序 桶排序 我的博客地址:http://blog.csdn.net/u010156024/article/details/48932219
MoreWindows白话经典算法之七大排序第2版(高清)
本书《更多Windows白话经典算法之七大排序第2版》是一部深入浅出讲解七种经典排序算法的著作,旨在帮助读者理解并掌握冒泡排序、直接插入排序、直接选择排序、希尔排序、
归并排序
、快速排序以及堆排序等基本概念和...
各种排序算法大全c++版
各种排序算法大全c++版 冒泡,选择,快排,希尔排序,堆排序,
归并排序
。
九种常用排序的实现和测试源码
本文件主要实现了九种常用的排序,分别为:冒泡排序、选择排序、插入排序、自底向上的
归并排序
、自顶向下的
归并排序
、快速排序、堆排序、基数排序、希尔排序,希望对初学者有所帮助,也欢迎讨论。
结构之法算法之道blog最新博文集锦第6期CHM文件
二叉树和图则广泛应用于搜索和排序
问题
。 2. **算法分析**:包括时间复杂度和空间复杂度的分析,是评估算法效率的重要手段。通过对算法运行过程的分析,我们可以预测算法在大数据量下的表现,从而选择更适合的解决...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章