comprehension tri

duree  d’execution d’un programme

import random
import time
debut=time.time()
t=[]
for i in range(100000):
    t.append(random.randint(0,10))
duree=time.time()-debut
print(duree)
    
>>>>0.15374755859375

nuage de points

import matplotlib.pyplot as plt
x=[i for i in range(10)]
y=[-2*xval+10 for xval in x]
plt.scatter(x,y)
plt.show()

visualiser la duree de création d’un tableau en fonction de sa longueur n

import matplotlib.pyplot as plt
import time
import random
def duree_tableau_alea2(n):
    t=[]
    debut=time.time()
    for i in range(n):
        t.append(random.randint(0,10))
    duree=time.time()-debut
    return duree
x=[i*10**5 for i in range(10)]
y2=[duree_tableau_alea2(val) for val in x]
plt.scatter(x,y2)
plt.show()
#toute cette partie c'est de la mise en page, couleur et presentation.

plt.scatter(x,y, color='coral', linestyle='solid', label='liste en compréhension')
plt.scatter(x,y1, color='navy', linestyle='solid', label='tableau numpy')
plt.scatter(x,y2, color='green', linestyle='solid', label='liste avec append')

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
plt.title('durée de céation d''un tableau de n valeurs aléatoires ',color="navy", fontsize=12)
ax = ax.set(xlabel='n ', ylabel='durée (en s)')
plt.legend(loc='center right');
#partie d'import

import time
import matplotlib.pyplot as plt
import numpy as np
import random

#definition des tableaux

def duree_tableau_alea(n):
    debut=time.time()
    t=[random.randint(0,10) for i in range(n)]
    duree=time.time()-debut
    return duree
def duree_tableau_alea1(n):
    debut=time.time()
    t=list(np.random.randint(10,size=n))
    duree=time.time()-debut
    return duree
def duree_tableau_alea2(n):
    t=[]
    debut=time.time()
    for i in range(n):
        t.append(random.randint(0,6))
    duree=time.time()-debut
    return duree
#calculs et show

x=[(i)*10**5 for i in range(5)]
y=[duree_tableau_alea(val) for val in x]
y1=[duree_tableau_alea1(val) for val in x]
y2=[duree_tableau_alea2(val) for val in x]
plt.show()

ici les resultats de la comparaison de tri:

L’ordinateur viens de tester 3 techniques de tri et a calculé leur temps d’execution. On peut voir que le tri sélection, code que nous avons codé et celui d’insertion ont beaucoup plus de temps d’execution que le tri sort qui est fait par python. Plus, il n’augmente pas celon la grandeur des tableaux. Pour les grandes entreprises la methode sort est bien meilleure.

Test avec des tableaux de 20

#j'ai seulement modifié cette partie
def duree_tris(n):
    t1=list(np.random.randint(20,size=n))
    t2=t1.copy()
    t3=t1.copy() 
    debut=time.time()
    tri_selection(t1)
    duree_selection=time.time()-debut
    debut=time.time()
    tri_insertion(t2)
    duree_insertion=time.time()-debut
    debut=time.time()
    t3.sort()
    duree_sort=time.time()-debut
    return duree_selection,duree_insertion,duree_sort
x=[(i)*5**3 for i in range(20)]
y=[duree_tris(val) for val in x]
y1=[y[i][0] for i in range(20)]
y2=[y[i][1] for i in range(20)]
y3=[y[i][2] for i in range(20)]

On voit que on a obtiens une echelle plus petite et donc plus precise. Le tri sort est la methode la plus rapide.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *