Почему моя реализация кучи в Python намного медленнее по сравнению со стандартной библиотекой heapq? ⇐ Python
Почему моя реализация кучи в Python намного медленнее по сравнению со стандартной библиотекой heapq?
Я сам реализую 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. Так почему же такая большая разница?
Я сам реализую 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. Так почему же такая большая разница?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему общая реализация Vector.log намного медленнее, чем негенерическая реализация для меня?
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему общая реализация Vector.log намного медленнее, чем негенерическая реализация для меня?
Anonymous » » в форуме C# - 0 Ответы
- 0 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему общая реализация Vector.log намного медленнее, чем негенерическая реализация для меня?
Anonymous » » в форуме C# - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-