各位有志之士,我不太明白这个代码,请帮我看看下面这个求堆排序的问题:
def head_ajust(L,start,end):
temp=L[start]
i=start
j=2*i
while j<=end:
if(j<end) and (L[j]<L[j+1]):
j+=1
if temp<L[j]:
L[i]=L[j]
i=j
j=2*i
else:
break
L[i]=temp
import math
def head_sort(L):
L_length=len(L)-1
first_sort_count=math.floor(L_length12)
for i in range(first_sort_count):
heap_adjust(L,first_sort_court-i,L_length)
for i in range(L_length-1):
L=swap_param(L,1,L_length-i-1)
heap_adjust(L,1,L_length-i-1)
return[L[i] for i in range(1,len(L))]