Application :
Les ordinateurs stockent beaucoup d’informations et ont besoin de les analyser rapidement. Les moteurs de
recherche sur Internet sont confrontés à l’un des plus grands problèmes de recherche au monde puisqu’ils doivent
balayer des milliards de pages en une fraction de seconde. Les données qu’un ordinateur doit rechercher, que ce
soit un mot, un code-barres ou le nom d’un écrivain, sont appelées clés de recherche. Les ordinateurs peuvent
traiter des informations très rapidement et vous pourriez penser que pour trouver quelque chose, ils balayent
l’endroit où elles sont stockées du début jusqu’à la fin, jusqu’à ce qu’ils trouvent les informations souhaitées. Mais
cette méthode est très lente, même pour les ordinateurs. Par exemple, supposons que les rayons d’un supermarché
contiennent 10 000 produits différents. Lorsqu’un code-barres est lu pour vérification, l’ordinateur doit rechercher
le nom et le prix du produit parmi 10 000 numéros. Même si la vérification d’un code ne prenait qu’un millième
de seconde, 10 secondes seraient nécessaires pour balayer toute la liste. Imaginez le temps que prendrait la
vérification des provisions pour une famille entière !
L’algorithme de recherche dichotomique est une meilleure stratégie mais il faut pour cela que les listes soient déjà
triées.
Algorithmes de tris--------------------------------------------------------------------------------------
Exercice 2 Le tri par sélection
Le tri par sélection consiste à déterminer le plus petit élément de la liste, l’ôter de la liste initiale puis déterminer le
plus petit élément de la liste restante, et ainsi de suite en construisant une nouvelle liste au fur et à mesure.
1) Dérouler l’algorithme, à la main, sur la liste suivante : [5,8,9,4,1].
2) Implémenter un programme en Python qui permet de trier dans l’ordre croissant une liste d’entiers par sélection.
Réaliser une fonction « tri_selection »
3) Déterminer le nombre de comparaisons nécessaires pour trier huit nombres. Et pour 9 ? 20 ? n ?
Exercice 3 Le tri à bulles
Le tri par remontée de bulles consiste à passer les éléments de la liste en revue plusieurs fois, comparer les éléments
adjacents, et à les échanger s’ils ne sont pas dans l’ordre croissant. Lorsque l‘on réalise un passage, on range le plus
petit élément en début de liste (les bulles les plus légères remontent en début de liste). La liste est classée lorsqu’il n’y
a plus d’éléments à changer de place.
1) Trier la liste suivante avec le tri à bulles :
[61, 1, 25, 33, 70, 20, 34, 19, 68, 79, 64, 24]
Combien de d’échanges a-t-on effectué ?
2) Trier la liste suivante avec le tri à bulles :
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1]
Combien fait-on d’échanges ?
3) Implémenter un programme en Python qui permet de trier dans l’ordre croissant une liste d’entiers par remontée
des bulles.
Réaliser une fonction « echange » qui échange deux valeurs puis un fonction « tri_bulles »