Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako napísať algoritmus poriadku n LGN pre overenie , či dve Vzhľadom k tomu , slová sú prešmyčka

Ak dve slová alebo frázy sú prešmyčky , majú presne rovnakú sadu písmen v rôznom poradí . Napríklad , " počúvať " a " tichý " sú prešmyčky . Môžete vytvoriť algoritmus s poradovým n log (n ) , energetickej účinnosti , ktorá kontroluje , či zoznam daných slov sú prešmyčky . Zoradiť potom s O ( n log (n ) ) metóda triedenia a využitia hash tabuľky pre porovnanie výsledkov . Pokyny dovolená 1

Vytvoriť hash tabuľku , ktorá má kľúč a zoznam hodnôt spojených s každým kľúčom . Počnúc prvým slovom , iterovat zoznam slov
2

triediť písmen v slove pomocou zlúčiť druh , haldy druh , binárny strom , druh alebo porovnateľného druhu , ktorý beží ako O (n log . (n ) ) . Pamätajte si , že prešmyčka sú totožné, ak radené .
3

Pozrite sa na triedený slovo v tabuľke hash . Pridať netriedené slovo na hodnoty pripojených k krížikom v prípade , že kľúč už existuje . Pridať na triedený slovo ako nový krížik a netriedeného slová ako hodnota pripojené k krížik , ak neexistuje krížikom . Napríklad vzhľadom na to , " krysa " , " tar " a " umenie " pridať " umenie " ako krížik a " krysa " ako hodnota , pridať " decht " ako hodnota "pripojený k " umenie " a pridať " umenie " ako hodnota pripojené k " umenia " .
4

Pokračujte s každým slovom v zozname . Keď sa dostanete na koniec zoznamu , vytlačte každý krížikom a jeho pridružené hodnoty pre zobrazenie prešmyčka nájdené .
5

Počet porovnávanie vykonaná pre overenie , že druh sa deje v " O (n log (n ) ) , " a že porovnanie sa deje v O ( 1 ) .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené