from time import time
from random import shuffle

TAILLE = 10**4

l = list(range(TAILLE))
l1 = l[:]
l2 = l[:]
l3 = l[:]
l4 = l[:]
l5 = l[:]
l6 = l[:]
l7 = l[:]
l8 = l[:]
shuffle(l)

def nombre_inferieurs(liste,position):
    compteur = 0
    for i in range(position):
        if liste[i] < liste[position]:
            compteur += 1
    return compteur

ll = l[:]
for i in range(TAILLE):
    ll[i] -= nombre_inferieurs(l,i)

t = time()
for i in range(TAILLE):
    l1.pop(ll[i])
print("Temps mis pour pop à des positions aléatoires : ",time()-t)

t = time()
for i in range(TAILLE//2):
    l2[ll[i]], l2[-1] = l2[-1], l2[ll[i]]
    l2.pop()
for i in range(TAILLE-TAILLE//2):
    l2.pop()
print("Temps mis pour pop à des positions aléatoires avec échange : ",time()-t)

t = time()
for i in range(TAILLE):
    l3.remove(l[i])
print("Temps mis pour remove des valeurs aléatoires : ",time()-t)

t = time()
for i in range(TAILLE):
    j = 0
    while j < TAILLE-i:
        if l4[j] == l[i]:
            l4[j], l4[-1] = l4[-1], l4[j]
            l4.pop()
            j = TAILLE
        j += 1
print("Temps mis pour retirer des valeurs aléatoires par échange : ",time()-t)

t = time()
for i in range(TAILLE):
    j = l5.index(l[i])
    l5[j], l5[-1] = l5[-1], l5[j]
    l5.pop()
print("Temps mis pour retirer des valeurs aléatoires par échange avec index : ",time()-t)

t = time()
for i in range(TAILLE):
    l6.pop(0)
print("Temps mis pour pop toujours par le fond : ",time()-t)

t = time()
for i in range(TAILLE//2):
    l7[i], l7[-1] = l7[-1], l7[i]
    l7.pop()
for i in range(TAILLE-TAILLE//2):
    l7.pop()
print("Temps mis pour pop toujours par le fond avec échange : ",time()-t)

t = time()
for i in range(TAILLE):
    l8.remove(l8[0])
print("Temps mis pour remove toujours le fond : ",time()-t)

