Я пытаюсь реализовать сортировку кучи без использования библиотеки 'heapq', чтобы попытаться понять процесс, стоящий за каждым этапом процесса сортировки кучи. Я попробовал и написал код ниже, но он не дает Мне любой вывод. Я не понимаю, в чем проблема. Спасибо заранее. [введите описание изображения здесь] [1]
def min_heapify(array,element):
left=(element*2)+1
right=(element*2)+2
length=len(array)-1
smallest=element
while left<=length and array[element]>array[left]:
smallest=left
while right<=length and array[smallest]>array[right]:
smallest=right
if smallest!=element:
array[smallest],array[element]=array[element],array[smallest]
min_heap(array,smallest)
def build_min_heap(array):
n=len(array)-1
array_sorted=[]
for element in range(n//2,-1,-1):
min_heapify(array,element)
return array
def heapsort(array):
aray=array.copy()
sorted_array=[]
build_min_heap(array)
for i in range(len(array)):
array[-1],array[0]=array[0],array[-1]
sorted_array.append(array.pop())
min_heapify(array,i)
return sorted_array
array=[10,20,3,15,1000,60,16]
newarray=build_min_heap(array)
print(newarray)