Pagini recente » Cod sursa (job #1144068) | Cod sursa (job #2342751) | Cod sursa (job #3159349) | Cod sursa (job #2204663) | Cod sursa (job #2657177)
fin=open("algsort.in","r")
fout=open("algsort.out","w")
heap=[0]
sz=0
def add(x):
heap.append(x)
node=sz
while node and heap[node]<heap[node//2]:
heap[node],heap[node//2]=heap[node//2],heap[node]
node//=2
def cut():
heap[1],heap[sz]=heap[sz],heap[1]
node=1
while 1:
son1=2*node
son2=2*node+1
if (son1<sz and heap[node]>heap[son1]) or (son2<sz and heap[node]>heap[son2]):
best=son1
if son2<sz and heap[son2]<heap[son1]:
best=son2
heap[node],heap[best]=heap[best],heap[node]
node,best=best,node
else:
break
l=fin.read().split()
n=int(l[0])
v=[0]
for i in range(1,n+1):
v.append(int(l[i]))
#print(v)
for i in range(1,n+1):
sz+=1
add(v[i])
for i in range(0,n):
print(heap[1],end=' ',file=fout)
cut()
sz-=1