Cod sursa(job #2537089)

Utilizator Constantin.Dragancea Constantin Constantin. Data 2 februarie 2020 23:52:36
Problema Sortare prin comparare Scor 40
Compilator py Status done
Runda Arhiva educationala Marime 0.72 kb
f = open('algsort.in', 'r')
g = open('algsort.out', 'w')

n = [int(x) for x in f.readline().split()]
a = [int(x) for x in f.readline().split()]

def merge_sort(v : list):
    if len(v) == 1:
        return v
    mid = len(v) // 2
    l = merge_sort(v[:mid])
    r = merge_sort(v[mid:])
    rez = []
    idx1 = idx2 = 0
    while idx1 < len(l) or idx2 < len(r):
        if idx2 == len(r):
            rez += [l[idx1]]
            idx1 += 1
        elif idx1 == len(l) or r[idx2] <= l[idx1]:
            rez += [r[idx2]]
            idx2 += 1
        else:
            rez += [l[idx1]]
            idx1 += 1
    return rez

a = merge_sort(a)

for i in a:
    g.write('{} '.format(i))

f.close()
g.close()