社区
数据结构与算法
帖子详情
归并排序的问题
nkorange
2011-07-20 09:35:39
我们在归并两个有序数组的时候,当然时间复杂度是O(m+n),那么能不能改进归并过程使得比较次数减小呢?
...全文
204
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版(高清)
在第一版的基础上新加了对冒泡排序,直接插入排序,直接选择排序,希尔排序,
归并排序
,快速排序和堆排序这七种常用的排序方法的总结篇,方便大家复习,合适作为笔试面试前的复习资料。
各种排序算法大全c++版
各种排序算法大全c++版 冒泡,选择,快排,希尔排序,堆排序,
归并排序
。
九种常用排序的实现和测试源码
本文件主要实现了九种常用的排序,分别为:冒泡排序、选择排序、插入排序、自底向上的
归并排序
、自顶向下的
归并排序
、快速排序、堆排序、基数排序、希尔排序,希望对初学者有所帮助,也欢迎讨论。
结构之法算法之道blog最新博文集锦第6期CHM文件
结构之法算法之道blog最新博文集锦第6期CHM文件,1月13日制作,请君享受。
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章