首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合
[单选题]
假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合适的算法是?
归并排序
插入排序
快速排序
冒泡排序
查看正确选项
添加笔记
求解答(9)
邀请回答
收藏(210)
分享
纠错
6个回答
添加回答
19
chiliao
首先肯定不能使用内存排序算法,内存根本装不下,所以需要使用外存来排序。这时候使用多路归并排序,把数据分为n段,每段小于100Mb,再使用用内存来排序,将排序结果用外存记录,然后每次从外存中来取记录,在内存中进行比较,从而获取最后的排序结果。
发表于 2017-01-17 20:28:23
回复(0)
6
nomico271
使用归并排序。
思路:1 先将1G分为10个100M(这里1G可理解近似等于1000M,方便讲解思路),分别加载10个100M数据到内存中,分别对其进行排序;
2 然后10文件每个文件选取10M加载到内存进行排序,依次进行。
即先分解再归并的思路。
编辑于 2017-08-03 22:02:55
回复(1)
2
非凡哥老埋
内存装不下,所以只能从外部排序中选择,在根据题设,可以得出用归并排序比较好
发表于 2017-11-24 23:32:37
回复(0)
0
道友请留步20180723235728
外部内存应该在每合并一次,就整理整理内存,腾出一片区域存放合并好的数据
发表于 2019-03-23 21:13:34
回复(0)
0
wanlanwalan
内存放不下,一般用外排序的多路归并比较适宜
发表于 2017-04-27 10:16:26
回复(0)
0
被支配的恐惧
首先肯定不能使用内存排序算法,内存根本装不下,所以需要使用外存来排序。这时候使用多路归并排序,把数据分为n段,每段小于100Mb,再使用用内存来排序,将排序结果用外存记录,然后每次从外存中来取记录,在内存中进行比较,从而获取最后的排序结果。
发表于 2017-04-09 23:09:05
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
排序
上传者:
牛100
难度:
6条回答
210收藏
6681浏览
热门推荐
相关试题
数据链路层滑动窗口机制中发送窗口(...
网络基础
评论
(1)
供受文者使用的具有法定效用的正式文...
京东
产品运营
2018
常识判断
行政
评论
(1)
有关linux线程的描述,正确的是...
京东
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
用一种动物介绍你自己
通用能力
评论
(1)
请你说几个海量数据存储常见问题以及...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题