Pagini recente » Cod sursa (job #2750281) | Cod sursa (job #279276) | Cod sursa (job #2686758) | Cod sursa (job #2405033) | Cod sursa (job #2657173)
import random
fin=open("algsort.in","r")
fout=open("algsort.out","w")
def quicksort(i,j):
if i>=j:
return
pivot=random.randint(i,j)
st=i
dr=j
valPivot=l[pivot]
ipivot=0
# print(l)
# print(pivot)
# print(valPivot)
for k in range(i,j+1):
l2[k]=0
for k in range(i,j+1):
if l[k]<valPivot:
l2[st]=l[k]
st+=1
elif k!=pivot:
l2[dr]=l[k]
dr-=1
# print(ipivot)
for k in range(i,j+1):
if l2[k]==0:
ipivot=k
break
# print(ipivot)
l2[ipivot]=valPivot
for k in range(i,j+1):
l[k]=l2[k]
# print(pivot)
# print(newPivot)
quicksort(i,ipivot-1)
quicksort(ipivot+1,j)
s=fin.read()
st=s.split()
n=int(st[0])
l=[]
l2=[0]*n
for i in range(n):
l.append(int(st[i+1]))
quicksort(0,n-1)
for i in l:
print("{} ".format(i),end=' ',file=fout)