Почему моя реализация кучи в Python намного медленнее по сравнению со стандартной библиотекой heapq?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя реализация кучи в Python намного медленнее по сравнению со стандартной библиотекой heapq?

Сообщение Anonymous »


Я сам реализую Min Heap, это моя функция вставки:

def Insert(self, new_elem): self.elems.append(new_elem) cur_pos = len(self.elems) - 1 пока cur_pos > 0: пар_поз = (cur_pos - 1) // 2 если self.elems[cur_pos] >= self.elems[par_pos]: перерыв еще: self.swap_node(cur_pos, par_pos) cur_pos = пар_поз. Я пытаюсь вставить такой список:

для i в диапазоне (int(3e5), -1, -1): min_heap.insert(я) Эти операции занимают 0,73 секунды в моей реализации Heap, тогда как при использовании библиотеки heapq они занимают всего 0,05 секунды. Я заметил, что heapq не реализован в C. Так почему же такая большая разница?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»