# In-place invoegen in een geordende lijst
def invoegen(getal,lijst):
    if len(lijst) == 0 or getal > lijst[-1]: # lazy evaluation
        return lijst
    
    i = len(lijst) - 2
    while i >= 0 and getal < lijst[i]:
        lijst[i + 1] = lijst[i]
        i = i - 1

    if i < 0:
        lijst[0] = getal
    else:
        lijst[i + 1] = getal

    return lijst

# Grondig testen!
for getal in range(13):
    lijst = [1, 3, 5, 7, 9, 11]
    invoegen(getal, lijst)
    print(lijst)

# Deze test is anders dan de bovenstaande test
lijst = [1, 3, 5, 7, 9, 11]
for i in range(13):
    invoegen(i, lijst)
print(lijst)

# Ook voor hele kleine lijsten moet dit werken!
        
lijst = []
invoegen(42, lijst)   # []
print(lijst)
   
lijst = [42]
invoegen(21, lijst)
print(lijst) # [21]

lijst = [42]
invoegen(63, lijst)  # [42]
print(lijst)