Algorithmique II¶
3. Algorithmes de tri [complément]¶
Solutions des exercices¶
Exercice 1
Voir partie Apprendre.
Exercice 2
Voir partie Apprendre.
Exercice 3
Voir partie Apprendre.
Exercice 4
Voir partie Apprendre.
Exercice 5 – Une question à un million
Si une instruction prend 10-6 secondes, combien de temps faut-il pour trier un tableau d’un million d’éléments avec le tri à sélection comparé au tri rapide (sans tenir compte de la constante) ?
Solution 5 – Une question à un million
Exercice 6 – Une question de pivot
Trier le tableau suivant avec l’algorithme de tri rapide : [3, 6, 8, 7, 1, 9, 4, 2, 5] à la main, en prenant le dernier élément comme pivot. Représenter l’état du tableau lors de toutes les étapes intermédiaires.
Est-ce que le choix du pivot est important ?
Solution 6 – Une question de pivot
Exercice 7 – Une question de sélection
Trier le tableau suivant avec l’algorithme de tri par sélection : [3, 6, 8, 7, 1, 9, 4, 2, 5] à la main. Représenter l’état du tableau lors de toutes les étapes intermédiaires.
Solution 7 – Une question de sélection
Exercice 8 – Une question d’insertion
Trier le tableau suivant avec l’algorithme de tri par insertion : [3, 6, 8, 7, 1, 9, 4, 2, 5] à la main. Représenter l’état du tableau lors de toutes les étapes intermédiaires.
Solution 8 – Une question d’insertion
Exercice 9 – Une question de bulles
Trier le tableau suivant avec l’algorithme de tri à bulles : [3, 6, 8, 7, 1, 9, 4, 2, 5] à la main. Représenter l’état du tableau lors de toutes les étapes intermédiaires.
Solution 9 – Une question de bulles
Exercice 10 – Une question de chronomètre 🔌
Créer une liste qui contient les valeurs de 1 à n dans un ordre aléatoire, où n prend la valeur 100, par exemple. Indice : utiliser la fonction shuffle()
du module random
.
Implémenter au moins deux des trois algorithmes de tri vu au cours.
A l’aide du module time
et de sa fonction time()
, chronométrer le temps prend le tri d’une liste de 100, 500, 1000, 10000, 20000, 30000, 40000 puis 50000 nombres.
Noter les temps obtenus et les afficher sous forme de courbe dans un tableur. Ce graphique permet de visualiser le temps d’exécution du tri en fonction de la taille de la liste. Que peut-on constater ?
Sur la base de ces mesures, peut-on estimer le temps que prendrait le tri de 100000 éléments ?
Lancer votre programme avec 100000 éléments et comparer le temps obtenu avec votre estimation.
Solution à compléter