Слияние K-отсортированных списков с использованием очереди приоритетов
В моем классе алгоритмов меня попросили создать алгоритм слияния K-way,O(nlogk)
После поиска я обнаружил, что это можно сделать, создав очередь с приоритетом длины k и поставив ее в очередь с первым элементом каждого списка. Извлеките минимум, добавьте его к результату и поставьте в очередь из списка, элемент которого был извлечен. Я запутался в:
Как он узнает, когда определенный список исчерпан, предположим, что список имеет меньшие элементы, чем любой другой элемент в других списках?
Как он узнает, из какого элемента был элемент (если структура не используется для определения)?
Как сложность времениO(nlogk)
?
РЕДАКТИРОВАТЬ:
Было бы немного более полезно, если бы кто-то мог записать алгоритм пошагово, потому что все, что я прочитал, это в предложениях, и его трудно понять, как оно есть, если бы кто-то мог записать алгоритм, было бы полезно понять.