Pagini recente » Cod sursa (job #1732309) | Cod sursa (job #2581481) | Cod sursa (job #2705485) | Cod sursa (job #1116323) | Cod sursa (job #2536361)
import random
def read_gen(fname):
with open(fname, 'rt') as fin:
for line in fin:
for val in line.split():
yield int(val)
def qsort(v, left, right):
if right - left < 1:
return
piv = random.randint(left, right)
v[piv], v[right] = v[right], v[piv]
val = v[right]
sep = left
for i in range(left, right):
if v[i] < val:
v[i], v[sep] = v[sep], v[i]
sep += 1
v[sep], v[right] = v[right], v[sep]
qsort(v, left, sep - 1)
qsort(v, sep + 1, right)
return v
if __name__ == "__main__":
it = read_gen('algsort.in')
n = next(it)
v = []
for _ in range(n):
x = next(it)
v.append(x)
v = qsort(v, 0, n - 1)
with open('algsort.out', 'wt') as fout:
for x in v:
fout.write('{} '.format(x))
fout.write('\n')