# samenvoegen van twee geordende lijsten: in-place oplossing
def samenvoegen(lijst_1, lijst_2):
    resultaat = [0] * (len(lijst_1) + len(lijst_2))
    index_lijst_1 = 0
    index_lijst_2 = 0
    index_resultaat = 0

    # hoofdlus
    while index_lijst_1 < len(lijst_1) and index_lijst_2 < len(lijst_2):
        if lijst_1[index_lijst_1] <= lijst_2[index_lijst_2]:
            resultaat[index_resultaat] = lijst_1[index_lijst_1]
            index_lijst_1 += 1
        else:
            resultaat[index_resultaat] = lijst_2[index_lijst_2]
            index_lijst_2 += 1
        index_resultaat += 1
        
    # behandel wat er overblijft van lijst_1
    while index_lijst_1 < len(lijst_1):
        resultaat[index_resultaat] = lijst_1[index_lijst_1]
        index_lijst_1 += 1
        index_resultaat += 1
        
    # behandel wat er overblijft van lijst_2
    while index_lijst_2 < len(lijst_2):
        resultaat[index_resultaat] = lijst_2[index_lijst_2]
        index_lijst_2 += 1
        index_resultaat += 1

    return resultaat


# testen
lijst_1 = [1,2,4,5,8,9,11]
lijst_2 = [3,6,7,10,12]
# of met een tweede lijst die langer is dan de eerste:
#lijst_2 = [0,3,6,7,10,12,13,14]

# resultaat kan gemakkelijk gecontroleerd worden
print (samenvoegen(lijst_1,lijst_2))