Om två ord eller fraser är anagram , delar de exakt samma uppsättning bokstäver i en annan ordning . Till exempel , " lyssna " och " tysta " är anagram . Du kan skapa en algoritm med ordning n log ( n ) effektivitet som kontrollerar om en lista av givna ord är anagram . Sortera därefter med en O ( n log ( n ) ) sorteringsmetod och använda en hash-tabell för att jämföra resultaten . Instruktioner
1
Skapa en hash-tabell som har en nyckel och en lista med värden som är förknippade med varje knapp . Från och med det första ordet , iterera igenom listan med ord
2
Sortera bokstäverna i ordet med merge sort , heap sort , binärt träd sort eller en jämförbar sort som körs som O ( n log . ( n ) ) . Kom ihåg att anagram är identiska när sorteras .
3
Slå upp den sorterade ordet i hash tabellen . Lägg den osorterade ordet till de värden som är knutna till knappen Fyrkant om nyckeln redan finns . Lägg det sorterade ordet som en ny hash nyckel och osorterade ordet som ett värde bifogas Fyrkant om hash- nyckeln inte finns . Till exempel , givet " råtta ", " tjära " och " konst ", lägg till " konsten " som knappen Fyrkant och " råttan " som ett värde , lägg till " tjära " som ett värde " bifogas " konst " och lägg till " konsten " som ett värde bifogas " konst . "
4
Fortsätt med varje ord i listan . När du når slutet av listan , skriv ut varje Fyrkant och dess associerade värden för att visa de hittade anagram .
5
Räkna de jämförelser som gjordes för att validera att sorteringen sker i " O ( n log ( n ) ) " och att jämförelsen sker i O ( 1 ) .