zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016
-
29 janv. 2008 à 15:53
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
30 janv. 2008 à 00:08
Bonjour à tous,
Je souhaite développer un algorithme de tri par base, ou tri radix. En effet, d'après ce que j'ai lu, il semble assez performant. Mais par contre, je vais vite peiner, et pas forcément au niveau de l'algorithme en lui-même. Je vous explique brièvement le principe de ce tri, puis mon problème.
Son mode opératoire est :
<ol><li>prend le chiffre (ou groupe de bits) le moins significatif de chaque clef,
</li><li>trie la liste des éléments selon ce chiffre, mais conserve l'ordre des éléments ayant le même chiffre (ce qui est un tri stable).
</li><li>répète le tri avec chaque chiffre plus significatif. </li></ol>exmple sur la liste : 170, 45, 75, 90, 2, 24, 802, 66
tri par le chiffre le moins significatif (unités) :
170, 90, 2, 802, 24, 45, 75, 66
tri par le chiffre suivant (dizaines) :
2, 802, 24, 45, 66, 170, 75, 90
tri par le chiffre le plus significatif (centaines) :
2, 24, 45, 66, 75, 90, 170, 802
Je compte travailler sur des entiers du type SmallInt (de -32768 à 32767). Ce que je ne vois pas comment faire, c'est considérer le chiffre des unités, puis des dizaines, ..., ou les 4 premiers bits, puis les 4 suivants, ... pour chacun de mes nombre à classe.
Merci pour votre prochaine aide.
Si c'est trop complexe, je me rabattrai sur un traditionnel QuickSort