En 1973, Weiner a donné la première construction en temps linéaire d'arbres suffixes. L'algorithme a été simplifié en 1976 par McCreight et en 1995 par Ukkonen. Néanmoins, je trouve l'algorithme d'Ukkonen relativement impliqué conceptuellement.
Y a-t-il eu des simplifications de l'algorithme d'Ukkonen depuis 1995?
ds.algorithms
Randomblue
la source
la source
Réponses:
Je ne sais pas s'il y a eu de nouveaux résultats simplifiant directement la construction d'arbres de suffixes. Cependant, il y a eu au moins un résultat donnant un algorithme très simple pour construire des tableaux de suffixes en temps linéaire.
Notez qu'il y a plus qu'une équivalence conceptuelle entre ces deux structures de données, car vous pouvez utiliser un tableau de suffixes (avec pour interroger le préfixe commun le plus long) pour créer un arbre de suffixes équivalent. Cela devrait être un exercice relativement simple, mais je peux donner plus de détails si nécessaire.O (1)
la source
En plus de ce qui a été mentionné ( Kärkkäinen & Sanders, 2003 ), je pense que vous apprécierez la version "plus récente" de Kärkkäinen, Sanders et Burkhard, 2006 . L'algorithme suit essentiellement la structure de l'algorithme de Farach. Il est sans doute conceptuellement plus simple, mais le véritable avantage est qu'ils fournissent au lecteur une implémentation de l'algorithme. Il ne s'agit que d'environ 50 lignes de C ++, donc il n'y a en effet aucun détail caché.
la source