社区
数据结构与算法
帖子详情
归并排序的问题
nkorange
2011-07-20 09:35:39
我们在归并两个有序数组的时候,当然时间复杂度是O(m+n),那么能不能改进归并过程使得比较次数减小呢?
...全文
161
8
打赏
收藏
归并排序的问题
我们在归并两个有序数组的时候,当然时间复杂度是O(m+n),那么能不能改进归并过程使得比较次数减小呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
各种排序算法大全c++版
各种排序算法大全c++版 冒泡,选择,快排,希尔排序,堆排序,
归并排序
。
MoreWindows白话经典算法之七大排序第2版(高清)
在第一版的基础上新加了对冒泡排序,直接插入排序,直接选择排序,希尔排序,
归并排序
,快速排序和堆排序这七种常用的排序方法的总结篇,方便大家复习,合适作为笔试面试前的复习资料。
九种常用排序的实现和测试源码
本文件主要实现了九种常用的排序,分别为:冒泡排序、选择排序、插入排序、自底向上的
归并排序
、自顶向下的
归并排序
、快速排序、堆排序、基数排序、希尔排序,希望对初学者有所帮助,也欢迎讨论。
MoreWindows白话经典算法之七大排序(高清版)
这是本人在研一上课时所整理的文档,包括冒泡排序,直接插入排序,直接选择排序,希尔排序,
归并排序
,快速排序和堆排序这七种常用的排序方法,这些文章不仅使我在考试中取了不错的成绩,也为后来顺利面过迅雷,腾讯...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章