Я реализую heapsort, просто используя метод Python heapq.heapify ().
Когда я запускаю приведенный ниже код, список, переданный в heapify (), не изменяется (может быть, я знаю причину), но когда я удаляю эти комментарии и передаю новый список (например, x) в heapify (), он работает отлично, но на каждой итерации будет создаваться дополнительный список.
Есть ли любым другим способом сделать это (используя heapify () и без создания нового списка)?
from heapq import heapify
def heapsort(arr, n):
for i in range(n):
# x = arr[i:]
heapify(arr[i:])
#arr[i:] = x
x = [17,15,37,12,38,62]
heapsort(x, len(x)-1)
print(x)