遵循 heapq.merge() 的文档- 我得到了非常奇怪的结果,并且找不到我做错了什么......设置如下:
- 我正在使用 heapq.merge() 对多个列表进行排序。用2~8个列表迭代器测试,结果完全一样。列表包含 10K ~ 25K 项。
- 列表元素本身实现了列表排序所需的一切(__ lt__()、__ eq__()、...)。
- 我测试了这些特殊的排序方法是否被调用,无论是在对列表本身进行排序时,还是在调用 heapq.merge() 方法时。
- 我确保列表不包含任何重复条目。甚至没有交叉列表。使用我附加到每个元素的简单运行编号,并在比较中使用。
输出:在遍历 2 个每个包含 25K 项的列表时,我得到了 100K 的结果。投入的金额翻倍。
我相信我遵循了这里的所有要求。我应该在将列表输入 heapq.merge 之前对列表进行堆放吗?文档中没有这样说,也不清楚应该/是否应该这样做。
有什么线索吗?