def zlij(a, b):
    i = 0 # pozicija v a
    j = 0 # pozicija v b
    c = [None for k in range(len(a) + len(b))]
    while i < len(a) and j < len(b):
        if a[i] < b[j]:
            c[i+j] = a[i]
            i += 1
        else:
            c[i+j] = b[j]
            j += 1
    # Preostale elemente iz a daj v c
    while i < len(a):
        c[i+j] = a[i]
        i += 1
    # Preostale elemente iz b daj v c
    while j < len(b):
        c[i+j] = b[j]
        j += 1
    return c

u = [1, 4, 5, 6, 10, 11]
v = [2, 3, 8, 9, 20, 21, 22]
print(zlij(u, v))

u = []
v = [2, 3, 8, 9, 20, 21, 22]
print(zlij(u, v))

u = []
v = []
print(zlij(u, v))

def uredi(a):
    """Uredi tabelo a z zlivanjem."""
    if len(a) <= 1:
        return a
    else:
        i = len(a) // 2 # sredina (približno)
        return zlij(uredi(a[:i]), uredi(a[i:]))

print(uredi([2,3,1,5,4]))
print(uredi([]))
print(uredi([2,2]))

import random
u = list(range(12000))
random.shuffle(u)
v = uredi(u)
print("Pa smo uredili u")
