< Zpět na seznam úloh

T4 Merge

var datasets = [
    {argv: [[1, 2, 3], [4, 5, 6]], out: [1, 2, 3, 4, 5, 6]},
    {argv: [[1, 7, 8], [2, 3, 4]], out: [1, 2, 3, 4, 7, 8]},
    {argv: [[8, 9, 10], [1, 2, 3]], out: [1, 2, 3, 8, 9, 10]},
    {argv: [[1, 2, 3], [1, 2, 3]], out: [1, 1, 2, 2, 3, 3]},
    {argv: [[], [1]], out: [1]},
    {argv: [[1], []], out: [1]},
    {argv: [[], []], out: []},
    {argv: [[4, 7, 8, 12, 15], [1, 2, 3, 5, 8, 13]], out: [1, 2, 3, 4, 5, 7, 8, 8, 12, 13, 15]},
]
var names = ['a', 'b'];

Program dostává dva seznamy čísel, které jsou setříděné od nejmenšího po největší. Má je spojit do jednoho seznamu, který bude také setříděný od nejmenšího po největší.

Cílem je využít toho, že oba seznamy už jsou setříděné. Ukázkový program už funguje, ale využívá funkci sort a tomu bychom se chtěli vyhnout.

def main(a, b):
    r = []
    while a or b:
        if a:
            x = a.pop()
        else:
            x = b.pop()
        r.append(x)
    r.sort()
    return r