使用O(1)RAM合并数据流

时间:2013-08-17 20:27:34

标签: sorting data-structures merge computer-science

如何使用O(1)RAM合并k个排序数据流?我该如何定义数据流对象及其相关的功能/操作?

我的解决方案:我想过使用数组列表作为数据流对象。我计划找到k数组列表的第0个索引的最小值。应该从该数组列表中删除最小值,并将其放在输出数组列表中。应该重复此过程,直到所有k个数组列表都变为空。但我想这将需要O(每个数组列表的k *长度)。任何想法如何在O(1)?

1 个答案:

答案 0 :(得分:1)

制作O(1)ram算法非常依赖于您的基础数据结构和选择的语言。假设您知道如何使用O(1)ram操纵数据结构,请参阅:

http://en.wikipedia.org/wiki/Merge_sort

合并功能需要O(1)内存。现在你需要的只是一组数据流的索引,并将所有流合并到第一个流中,你就完成了。