Une façon simple d’implémenter ce tri est la suivante. Le processus suivant est répété un nombre de
fois égal au nombre de chiffres du plus grand nombre du tableau tab.
— Les nombres sont placés dans un tableau de 10 cases : chaque case icontient une file contenant
tous les nombres dont le chiffre à la position étudiée est égal à i.
Par exemple, si le tableau initial est [170,045,075,090,002,024,802,066], le tableau à l’issue de
la première itération serait :
0: 170, 090
1: vide
2: 002, 802
3: vide
4: 024
5: 045, 075
6: 066
7 - 9: vide
— Les files sont transformées en un tableau d’entiers, en respectant l’ordre des éléments dans les
files. Avec l’exemple précédent, le tableau serait alors [170,090,002,802,024,045,075,066] à
l’issue de la première itération.
Ce processus est répété pour chaque position. Lors de la deuxième itération par exemple, on s’intéresse
au chiffre des dizaines, et les files pour l’exemple précédent sont les suivantes :
0: 002, 802
1: vide
2: 024
3: vide
4: 045
5: vide
6: 066
7: 170, 075
8: vide
9: 090
Le tableau à l’issue de la deuxième itération est le suivant : [002,802,024,045,066,170,075,090]. Enfin,
lors de la troisième itération, les files sont :
0: 002, 024, 045, 066, 075, 090
1: 170
2 - 7: vide
8: 802
9: vide
et le tableau est [002,024,045,066,075,090,170,802] (il est trié).
Implémentez le tri par base. Quelle est sa complexité ? Comparez expérimentalement cet algorithme
aux algorithmes codés auparavant.
Exercice 6 (Horse-racing Duals)
Rendez-vous sur le site www.codingame.com et créez un compte. Ce site permet de s’entrainer à coder
en proposant de multiples petits défis et concours. Vous êtes encouragé(e)s à vous exercer dessus afin
d’améliorer vos talents de codeurs en langage C. Cependant, il ne permet pas de développer deux com-
pétences importantes pour les TPs d’algorithmique : 1) mener des études expérimentales complètes et
précises et 2) gérer de manière rigoureuse des projets informatiques.