nsi:premiere:tris_denombrement
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Exercice : Tri par dénombrement
On présente ici un exemple de tri qui exploite les dictionnaires.
On se donne un tableau tab contenant des nombres entiers. Cette méthode de tri sera efficace si l'écart entre le minimum et le maximum n'est pas trop important.
FONCTION tri_denombrement
ENTRÉE: tab, tableau à trier
SORTIE: copie de tab, triée
DÉBUT
SI tab est vide ALORS
RENVOYER []
FIN
soit d un dictionnaire vide,
soit m égal à tab[0] # ce sera le min
soit M égal à tab[0] # ce sera le max
POUR CHAQUE item DE tab FAIRE
SI item dans d ALORS
ajouter 1 à la valeur associer à item dans d
SINON
insérer la nouvelle clé item dans d avec la valeur 1
FIN
SI item > M ALORS
M = item
FIN
SI item < m ALORS
m = item
FIN
FIN
soit t un tableau vide
POUR v allant de m à M FAIRE
SI v est dans dico ALORS
soit k la valeur associée à v dans dico
ajouter k fois la valeur v dans t
FIN
FIN
RENVOYER t
FIN
- Pourquoi est-il préférable que l'écart entre minimum et maximum soit faible ?
- Implémentez cet algorithme et testez.
nsi/premiere/tris_denombrement.txt · Dernière modification : de yadam
