Si deux mots ou expressions sont des anagrammes , ils partagent le même ensemble de lettres dans un ordre différent . Par exemple, «écouter» et «silencieux» sont des anagrammes . Vous pouvez créer un algorithme de commande n log efficacité (n) qui vérifie si une liste de mots donnés sont des anagrammes . Classez ensuite avec un (n log (n)) la méthode de tri O et utiliser une table de hachage pour comparer les résultats . Instructions
1
Créer une table de hachage qui a une clé et une liste de valeurs associées à chaque touche. Dès le premier mot, parcourir la liste des mots
2
Trier les lettres dans le mot à l'aide de tri par fusion , tri en tas , arbre binaire genre ou une espèce comparable qui fonctionne comme O ( n log . (n)) . Rappelez-vous que anagrammes sont identiques lorsque triée.
3
chercher le mot triées dans la table de hachage . Ajouter le mot non triés des valeurs attachées à la clé de hachage si la clé existe déjà . Ajouter le mot triés comme une nouvelle clé de hachage et le mot non triés comme une valeur attachée à la clé de hachage si la touche dièse n'existe pas. Par exemple , compte tenu de "rat ", " goudron " et " art ", ajouter " art" comme la clé de hachage et de "rat" comme une valeur ; ajouter «goudron» comme une valeur " attaché à " art " et ajouter " art" comme une valeur attachée à «l'art ».
4
Continuer à chaque mot dans la liste. Lorsque vous atteignez la fin de la liste , imprimez chaque touche dièse et ses valeurs associées à voir les anagrammes trouvés .
5
Compter les comparaisons effectuées pour valider que le genre se produit dans " O ( n log (n)) " et que la comparaison se passe en O (1) .