• Aucun résultat trouvé

TRI A BULLE

N/A
N/A
Protected

Academic year: 2022

Partager "TRI A BULLE"

Copied!
1
0
0

Texte intégral

(1)

# =========================================================== #

# TRI A BULLE #

# Evaluation expérimentale de la complexité moyenne. #

# (nombre de comparaisons et nombre d'inversions effectuées). #

# Version du 21/11/2015 #

# =========================================================== #

# Importations

# ============

from random import randint from time import perf_counter

# La fonction de tri

# ==================

def tri_bulle(L):

global c, inv k = len(L)

# Liste vide ou ne contenant qu'un élément if k<= 1:

return L else:

Done = False

while not Done and k >= 2:

c += (k-1) Done = True

for i in range(k-1):

if L[i] > L[i+1]:

inv += 1

L[i], L[i+1] = L[i+1], L[i]

Done = False k -= 1

# Saisie des paramètres et initialisations

# ========================================

c, inv = 0, 0

ntris = int(input('Combien de tris souhaitez-vous ? ')) n = int(input('\nLongueur des listes à trier ? '))

valmax = int(input('\nValeur maxi des nombres générés ? ')) complex = 0

for i in range(ntris):

LNA = [randint(0,valmax) for i in range(n)]

t_start = perf_counter() tri_bulle(LNA)

t_end = perf_counter() complex += (t_end - t_start)

# Affichage de :

# (1) la valeur moyenne de "temps de tri/n²" qui doit être à peu près constant

# (2) la valeur moyenne de "nombre de comaparisons/n²" qui doit être proche de 1/2.

# (3) la valeur moyenne de "nombre d'inversions/n²" qui doit être proche de 1/4.

# =================================================================================

print('\nDurée du tri : ',complex/(ntris*n**2)) print('\nComparaisons : ',c/(ntris*n**2)) print('\nInversions : ',inv/(ntris*n**2))

# ================

# FIN DU PROGRAMME

1

Références

Documents relatifs

[r]

Dans la dernière case de notre tableau, la valeur exacte de d s’écrit donc 5 et se lit racine de cinq.. Dans ce cas, la calculatrice ne peut nous donner qu’une valeur approchée

Quand une division ne se termine pas, on peut donner une valeur approchée par excès ou par défaut du résultat.  8,4 est une valeur approchée au dixième près

Sachant que l’aire d’une sphère est donnée par la formule 4πR², quelle est la valeur exacte de son rayon?. En donner l’arrondi

A ce sujet, nous allons démontrer un théorème de la dernière importance dans cette matière et dont l’énoncé suit : “Étant donnée une équation avec un certain nombre

• Utiliser diverses représentations des nombres ( écriture en chiffres et en lettres, noms à l’oral, graduations sur une demie-droite, constellations sur des

[r]

Puis écris le nombre de boîtes que tu peux remplir, le nombre de poupées qui restent. Nombre