Se duas palavras ou frases são anagramas, eles compartilham o mesmo conjunto de letras em uma ordem diferente. Por exemplo, "ouvir" e "silencioso" são anagramas. Você pode criar um algoritmo com log ordem n ( n) eficiência que verifica se uma lista de palavras dadas são anagramas. Classificar em seguida, com um O (n log (n)) Método de classificação e utilizar uma tabela hash para comparar os resultados . Instruções
1
Criar uma tabela hash que tem uma chave e uma lista de valores associados a cada tecla. Começando com a primeira palavra ; percorrer a lista de palavras
2
Classificar as letras da palavra usando merge sort , montão espécie , tipo árvore binária ou uma espécie similar que funciona como log O (n . ( n ) ) . Lembre-se que anagramas são idênticos quando ordenados.
3
Procure a palavra classificada na tabela de hash. Adicione a palavra indiferenciados aos valores ligados à chave de hash se a chave já existe. Adicione a palavra classificada como uma nova chave de hash ea palavra indiferenciados como um valor ligado à chave de hash se a chave de hash não existe. Por exemplo, dado " rato", "tar " e " arte" adicionar "arte" como a chave de hash e " rato " como um valor , adicione "tar " como um valor " ligado a "arte " e acrescentar " arte" como um valor ligado a " arte".
4
Continue com cada palavra na lista. Quando você chegar ao final da lista , imprima cada chave de hash e seus valores associados para ver os anagramas encontrados .
5
Contagem as comparações feitas para validar que o tipo acontece em " O (n log (n)) " e que a comparação acontece em o (1) .