Я читаю исходный код heapq и обнаружил, что функция _siftup наконец-то называется _siftdown. Я думаю, что это немного избыточно. Я хочу знать, что это действительно необходимо?
Я провел тест между двумя условиями, но я не нашел никакой разницы между этими двумя условиями. тестовый код ниже (heap_test является копией кучи и прокомментировал последнюю строку _sifup):
from heapq_test import heapify as heapify_test
import heapq
import random
for _ in range(200000):
a = [random.randint(0, 30) for _ in range(100)]
b = a.copy()
heapify_test(a)
heapq.heapify(b)
assert a == b