社区
数据结构与算法
帖子详情
一道算法题
zhu_nn
2010-07-10 08:03:09
一个长度为1亿的整数数组,是整体有序(升序),局部无序的(个别元素比前面的小),而且这种局部无序分布的比较离散,现在请设计出一种比较高效的算法出来,将数组排好序,数组里面有一部分重复的数。
呵呵,大家集思广益啊,尽量多想点好方法。
...全文
268
11
打赏
收藏
一道算法题
一个长度为1亿的整数数组,是整体有序(升序),局部无序的(个别元素比前面的小),而且这种局部无序分布的比较离散,现在请设计出一种比较高效的算法出来,将数组排好序,数组里面有一部分重复的数。 呵呵,大家集思广益啊,尽量多想点好方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fanster28_
2010-07-12
打赏
举报
回复
直接贪心抓升序串可能遇到如下情况
比如每5个有一个无序
5 1 2 3 4 10 5 6 7 8
这样贪心出来n/5 剩下0.8n
wxc1987821
2010-07-12
打赏
举报
回复
mark
angel6709
2010-07-12
打赏
举报
回复
100,000,000=100M
第一遍过滤,过滤时做一些手脚,如分分段,。。每一段的最大,最小值
第二遍对每一个元素插入排序,插入到相应的段中。。
估计总复杂度小2n
showjim
2010-07-12
打赏
举报
回复
感觉直接插入排序效率最高
oyzdz1988
2010-07-12
打赏
举报
回复
对,楼上的想法没错,
归并排序~
宅男小何
2010-07-12
打赏
举报
回复
这样的数据建议用归并排序,效率高!
http://blog.csdn.net/lazy_p/archive/2010/05/04/5557469.aspx
AAA20090987
2010-07-10
打赏
举报
回复
如果无序的元素比较少,就用直接插入排序
如果无序的元素比较多,就用2楼的方法。
qqcrazyer
2010-07-10
打赏
举报
回复
这相我不知道
zhu_nn
2010-07-10
打赏
举报
回复
[Quote=引用 2 楼 fancymouse 的回复:]
贪心抓一个升序串,大体有序的话而且无序是比之前的小的话,那抓出来的这个升序串应该覆盖了大部分的原串。
然后把不在这个串里的拿出来,做传统排序,再和上面那个的归并。O(n+klogk),k是不在升序串里的元素个数。
当然内存还是O(n)的。
[/Quote]
这个和直接做插入排序一样吧?
FancyMouse
2010-07-10
打赏
举报
回复
贪心抓一个升序串,大体有序的话而且无序是比之前的小的话,那抓出来的这个升序串应该覆盖了大部分的原串。
然后把不在这个串里的拿出来,做传统排序,再和上面那个的归并。O(n+klogk),k是不在升序串里的元素个数。
当然内存还是O(n)的。
jdtxse
2010-07-10
打赏
举报
回复
数据好大。如果算法稍稍不好,就算不出来了。
【每日
一道
算法
题
】
博客围绕每日
一道
算法
题
展开,虽目前仅提及编号NO.1,但可推测后续会持续更新
算法
题
相关内容,专注于
算法
领域,为信息技术学习提供每日练习。
一道
算法
题
我的思路
本文讨论了
一道
关于行李装载的
算法
题
,核心是判断所有行李总大小是否不超过容器容量。不同于背包问
题
中的组合优化,本
题
只需计算总和并进行比较,适合快速判断可行性,对准备程序员认证考试具有参考价值。
每天写
一道
算法
题
博主决定从今天起挑战每日完成
一道
算法
题
,并通过博客记录自己的编程过程、思考及遇到的问
题
。此计划旨在不断提升
算法
水平,同时也为将来参加比赛、项目开发或期末考试等做准备。
一道
算法
题
-括号生成
本文介绍了一种使用动态规划解决括号生成问
题
的方法,并详细阐述了解
题
思路及代码实现。作者通过每周完成
一道
算法
题
的方式,加深了对
算法
的理解,并分享了其学习心得。
每天
一道
算法
题
博客围绕每天
一道
算法
题
展开,虽未给出具体内容,但从标签可知涉及
算法
及深度优先相关知识,推测会有
算法
题
的讲解与练习,助力提升
算法
能力。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章