Autre amélioration possible pour ton code : utiliser une structure d'ensemble plutôt qu'une liste pour ton type t.path. Les ensembles sont codés par des AVL et offrent une complexité logarithmique en temps là où avec tes listes tu as une complexité linéaire.
tu n'auras plus besoin de générer une liste puis de la renverser, ou d'autres code dans le genre : la complexité en temps de tes algos sera grandement réduite.
[^] # Re: Destructeurs
Posté par kantien . En réponse à la dépêche Crystal, un langage proche de Ruby, en version 0.16. Évalué à 3. Dernière modification le 11 mai 2016 à 15:07.
Autre amélioration possible pour ton code : utiliser une structure d'ensemble plutôt qu'une liste pour ton type
t.path. Les ensembles sont codés par des AVL et offrent une complexité logarithmique en temps là où avec tes listes tu as une complexité linéaire.Ce qui donnerait pour le début de ton code :
cela te permettra, entre autre, de supprimer la fonction
uniqet de codermerge_updateainsi :tu n'auras plus besoin de générer une liste puis de la renverser, ou d'autres code dans le genre : la complexité en temps de tes algos sera grandement réduite.
Documentation du module Set et tutoriel succinct.
Tu vois : pas besoin de contourner le GC pour avoir du code efficace. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.