Pagini recente » Cod sursa (job #879532) | Cod sursa (job #1205828) | Cod sursa (job #123842) | Monitorul de evaluare | Cod sursa (job #2617885)
def quicksort(start, stop):
i = start
j = stop
p1 = choice(v[start:stop + 1])
p2 = choice(v[start:stop + 1])
p3 = choice(v[start:stop + 1])
if p1 <= p2 <= p3 or p1 >= p2 >= p3:
pivot = p2
elif p2 <= p1 <= p3 or p2 >= p1 >= p3:
pivot = p1
else:
pivot = p3
while i <= j:
while v[i] < pivot:
i += 1
while v[j] > pivot:
j -= 1
if i <= j:
aux = v[i]
v[i] = v[j]
v[j] = aux
i += 1
j -= 1
if i < stop:
quicksort(i, stop)
if j > start:
quicksort(start, j)
from random import choice
fin = open("algsort.in")
fout = open("algsort.out", "w")
n = int(fin.readline())
v = [int(x) for x in fin.readline().split()]
quicksort(0, len(v) - 1)
for i in v:
fout.write(str(i) + " ")
fin.close()
fout.close()