标签: algorithm
上面说的一切。我真的不能想办法做到这一点,以及如何证明这一点。有什么想法吗?
答案 0 :(得分:3)
将输入列表放在堆(也称为优先级队列)中,其中每个列表的优先级是其第一个元素。要获取输出列表的下一个元素,请将顶部列表从堆中拉出,将其第一个元素追加到输出列表,从输入列表中删除该元素,并且(如果输入列表不为空)将输入列表放回在堆中。重复直到堆为空。
有关详细信息,请参阅this question and answer on Computer Science stackexchange。