![]() |
1
1
您可以使用 priority queu E(基于二进制堆)。
用对填充队列
相对于可用内存,您的列表有多大?
|
![]() |
2
0
基本方法应该是创建一个最小大小的堆(n),其中n是从大列表中分区排序的列表数。 二进制堆的每个节点都应该表示为index/sorted_list_number和value。 最小堆的顶部节点将指向大列表的最小值,索引将指向排序列表的来源,现在从最小堆弹出的顶部将其值添加到大列表中,并将弹出的索引列表中的新值添加到堆中,然后再次进行堆修复。 重复直到节点完成,当一个/多个列表在进程中变空时,还要注意heapsize。 |
![]() |
3
0
因为问题是您的列表大于内存,所以我认为外部排序是解决方案: https://en.wikipedia.org/wiki/External_sorting
|
![]() |
Cute dog · 如何将文本与重新排序的图像相匹配? 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
![]() |
Rohan Mittal · 按dict值对dict排序 2 年前 |
![]() |
Pikachu620 · 可以对事件列表进行排序吗? 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
![]() |
tryingmybest09 · 设置出生日期排序不正确 2 年前 |