Première NSI 1 Non classé Quelques algorithmes de tri

Quelques algorithmes de tri

1) Introduction

Comment trier dans l’ordre croissant un tableau d’entier ?

2) Tri par insertion

Les animations du lien ci-dessous doivent vous permettre de comprendre cet algorithme de tri.

https://interstices.info/les-algorithmes-de-tri/

Découpez 5 petites cartes et écrire les entiers du tableau qui va nous servir d’exemple.

Vérifiez que vous êtes capable de trier le tableau avec l’algorithme de tri par insertion.

ci-dessous l’implémentation de l’algorithme en python

exécuter le programme pas à pas dans python tutor pour vous aider à comprendre l’algorithme.

https://pythontutor.com/

Vous devez être capable d’exécuter le programme sur une feuille de papier sans python tutor

2) Tri par sélection

Effectuez le même travail sur le tri par sélection

https://interstices.info/les-algorithmes-de-tri/

4) Comparaison des tris

La méthode sort() permet de trier un tableau :

On peut générer un tableau de n entiers aléatoires ,effectuer un tri et mesurer le temps d’exécution.

Avec 10 entiers le temps est si petit qu’il n’est pas mesurable.

à vous de tester avec plus d’entiers en évitant d’afficher les tableaux.

pour n=1000 ,10000,10000

comparez les deux tris étudiés avec le tri effectué par la méthode sort.

corrigé:

import time
import random

n=100000
tab=[]

# On génère un tableau d'entiers aléatoires
for i in range(n):
    tab.append(random.randint(0,n))
    
# On copie la liste tab générée pour trier la même liste(le tri modifie la liste)    
tab1=list(tab)
tab2=list(tab)

# Tri de tab avec la méthode intégrée à python
debut=time.time()
tab.sort()
duree=time.time()-debut
print('durée sort() pour n=',n," : " , duree ,'s')

# Tri selection  d'une copie de tab 
debut=time.time()
tri_selection(tab1)
duree=time.time()-debut
print('durée tri_selection() pour n=',n," : " , duree ,'s')

# Tri insertion d'une copie de tab 
debut=time.time()
tri_insertion(tab2)
duree=time.time()-debut
print('durée tri_insertion() pour n=',n," : " , duree ,'s')

Leave a Reply

Votre adresse e-mail ne sera pas publiée.

Related Post