此算法代码尚有点问题,容后再看:
Wikipedia :冒泡排序
# Heap Sort
def heap_sort(lst):
length = len(lst)
for i in xrange(0, len(lst)):
index = 0
lst.insert(index,lst[i])
del lst[i+1]
j,sum= 0,0
print lst, "Testing",i,length
while True:
index_left = pow(2, j)+sum
index_right = pow(2, j)+sum+1
if lst[index] >= lst[index_left]:
lst[index], lst[index_left] = lst[index_left], lst[index]
index = index_left
j += 1
sum = sum *2
elif lst[index] >= lst[index_right]:
lst[index], lst[index_right] = lst[index_right], lst[index_right]
index = index_right
j += 1
sum = sum *2 +1
else:
j +=1
if pow(2,j)>length:
break
return lst