J'ai travaillé sur une implémentation Fibonacci Heap en Java depuis environ une semaine maintenant. C'est la mise en œuvre basée sur le livre CLRS. Je voulais voir si j'aurais une amélioration des performances en l'utilisant dans un projet parallèle sur lequel je travaille par rapport à PriorityQueue par défaut de Java. [L'implémentation par défaut dans Java est basée sur un tableau, beaucoup plus locale. Il peut encore surperformer le F-Heap malgré des limites plus élevées en complexité].Fibonacci Heap Issue
Mon problème semble provenir de la consolidation de la partie du tas après la suppression de l'élément min. Je n'arrête pas de lancer arrayindexofofboundsexceptions. Spécifiquement dans la boucle while, quand elle consolide tous les nœuds ayant le même degré. Il dépasse les limites définies par la fonction D(). Donc, soit ma fonction D() est fausse, ce qui, je ne le pense pas, ou quelque chose d'autre se passe. Effet secondaire le plus probable lié.
Le code est situé here. J'ai essayé de déboguer cela pendant environ une semaine avec maintenant de la chance. Est-ce que je manque quelque chose d'évident?