首页 > 试题广场 >

假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合

[单选题]
假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合适的算法是?
  • 归并排序
  • 插入排序
  • 快速排序
  • 冒泡排序
首先肯定不能使用内存排序算法,内存根本装不下,所以需要使用外存来排序。这时候使用多路归并排序,把数据分为n段,每段小于100Mb,再使用用内存来排序,将排序结果用外存记录,然后每次从外存中来取记录,在内存中进行比较,从而获取最后的排序结果。
发表于 2017-01-17 20:28:23 回复(0)
使用归并排序。
思路:1 先将1G分为10个100M(这里1G可理解近似等于1000M,方便讲解思路),分别加载10个100M数据到内存中,分别对其进行排序;
2 然后10文件每个文件选取10M加载到内存进行排序,依次进行。
即先分解再归并的思路。
编辑于 2017-08-03 22:02:55 回复(1)
内存装不下,所以只能从外部排序中选择,在根据题设,可以得出用归并排序比较好
发表于 2017-11-24 23:32:37 回复(0)
外部内存应该在每合并一次,就整理整理内存,腾出一片区域存放合并好的数据
发表于 2019-03-23 21:13:34 回复(0)
内存放不下,一般用外排序的多路归并比较适宜
发表于 2017-04-27 10:16:26 回复(0)
首先肯定不能使用内存排序算法,内存根本装不下,所以需要使用外存来排序。这时候使用多路归并排序,把数据分为n段,每段小于100Mb,再使用用内存来排序,将排序结果用外存记录,然后每次从外存中来取记录,在内存中进行比较,从而获取最后的排序结果。
发表于 2017-04-09 23:09:05 回复(0)