Этот поток о K
пути слияния. Это то, что вы смотрите на первое значение всех K
списков, затем берете один элемент из одного списка и повторяете.
Настало время O(n K)
, потому что для каждого из n
элементов, которые вы ищете для минимума K
списков.
Разделение и объединение занимает O(n)
для одного набора слияний, что сокращает количество списков пополам. Таким образом, после слияния log(K)
вы выполняете время O(n log(K))
.
Мин-куча похожа на слияние K
, за исключением того, что для поиска наименьшего элемента требуется только время O(1)
O(log(K))
чтобы получить это. Так что требуется время O(n log(K))
.
Мин-куча - это реализация очереди приоритетов, поэтому она одинакова.
Все эти методы занимают одинаковое пространство, O(n)
.
Удачи в кодировании, какой бы вы ни выбрали!