Si dos palabras o frases son anagramas , comparten exactamente el mismo conjunto de letras en un orden diferente. Por ejemplo , "escuchar" y " silencio " son anagramas . Puede crear un algoritmo de orden n log eficiencia ( n) que comprueba si una lista de palabras dadas son anagramas . Ordena entonces con ( n log ( n)) un método para ordenar O y usar una tabla hash para comparar los resultados . Instrucciones
1
Crear una tabla hash que tiene una clave y una lista de valores asociados a cada tecla. A partir de la primera palabra, recorrer la lista de palabras
2
Ordenar las letras de la palabra que usan una especie de mezcla , pila de clasificación , binario árbol de especie o de una especie similar que se ejecuta como O ( n log . ( n ) ) . Recuerde que los anagramas son idénticos cuando ordenados .
3
Busque la palabra ordenada en la tabla hash. Añadir la palabra sin clasificar a los valores vinculados a la tecla de almohadilla si ya existe la clave . Añadir la palabra ordenada como una nueva tecla de almohadilla y la palabra no clasificados como un valor que se asigna a la tecla de almohadilla , si no existe la clave hash. Por ejemplo, dada " la rata ", "tar " y " arte", añadir "arte" como clave hash y "rata" como un valor , añadir "tar " como un valor ", adjunto en "arte" y añadir "arte " como un valor que se asigna a " arte".
4
Continuar con cada palabra de la lista. Cuando llegue al final de la lista , imprima cada tecla de almohadilla y sus valores asociados para ver los anagramas encontrados .
5
Contar las comparaciones realizadas para validar que el tipo que ocurre en " O ( n log ( n)) "y que la comparación que sucede en O ( 1 )
.