2016-03-17 7 views
-5

Предположим, что отсортированный список n/logn элементов отсортирован по лону. Затем укажите временную сложность создания отсортированного списка всех этих элементов? (подсказка: использование структуры данных кучи)Найти сложность времени?

Как действовать, чтобы получить ответ с использованием структуры данных кучи?

+0

Это действительно просто. Как вы к нему подошли? – displayName

+3

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что автор пока не показал работу. – xenteros

+1

Это звучит как домашнее задание. Возможно, это не так, но это похоже на одно. [«3. Вопросы, требующие помощи в выполнении домашних заданий, должны содержать ** резюме работы, которую вы сделали до сих пор, для решения проблемы **, и ** описание трудности, которую вы решаете. **"] (http://stackoverflow.com/help/on-topic). Текущее состояние вашего вопроса не отвечает этим требованиям. Пожалуйста, отредактируйте вопрос, чтобы улучшить его. Пожалуйста, также прочитайте это [Открытое письмо для учащихся с проблемами домашних заданий] (http://meta.programmers.stackexchange.com/q/6166). – Makyen

ответ

1

Вы можете сделать это следующим образом:

  1. Создать мин кучу размера = общее количество списков (LogN здесь) и вставьте 1-ый элемент во всех списках в кучу
  2. Повторите следующий шаги № элементов в каждом списке * размер, который здесь n здесь.

    a) Получите минимальный элемент из кучи (минимум всегда в корне) и сохраните его в списке результатов.

    b) Замените корень кучи следующим элементом из списка, из которого извлекается элемент. Если в списке больше нет элементов, замените корень на бесконечность. После замены корня, heapify.

Таким образом, основным шагом является шаг 2, который запускает цикл n в этом случае. Каждый раз, когда heapify берет журнал (размер), который равен loglogn.

Следовательно, временная сложность: nloglogn.

+0

Я предполагаю, что каждый список имеет по n элементов. Это правильно? Или общие элементы n? Потому что если суммарные элементы n, то это будет ne O (nloglogn) –

+0

Я просто прочитал ваш вопрос еще раз. И я вижу, что, по-моему, вы имели в виду, что суммарные элементы будут n с каждым списком, имеющим элементы logn. Таким образом, я обновил свой ответ. Это было просто недоразумение. Простите за это! –