Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Szybki algorytm porównywania permutacji
qrzysztof
post 6.05.2014, 12:02:05
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

Ostrzeżenie: (0%)
-----


Poszukuję algorytmu, który będzie porównywał dwie permutacje (czyli ciągi zawierające te same znaki, tyle że ułożone w innej kolejności). Przykładowo mogą to być dwa ciągi KACZKA i AACKKZ.

Kryterium porównania jest liczba mutacji potrzebnych do przekształcenia ciągu 1 w ciąg 2. Przy czym mutacja polega na zamianie dwóch sąsiednich znaków miejscami. Na przykład w ciągu KACZKA po zamianie C i Z otrzymamy KAZCKA. Zamieniane litery muszą zawsze ze sobą sąsiadować z jednym wyjątkiem: pierwszą literę można zamienić miejscami z ostatnią.

Interesuje mnie minimalna liczba takich mutacji potrzebnych do przekształcenia ciągu 1 (np. AACKKZ) w ciąg 2 (np. KACZKA). W przykładzie mamy:

Wejście: AACKKZ, KACZKA
Mutacja 1: AACKZK (Z w lewo)
Mutacja 2: AACZKK (Z w lewo)
Mutacja 3: KACZKA (zamiana pierwszej litery z ostatnią)
Wyjście: 3

Zależy mi też na tym, żeby kod był w miarę optymalny.

Będę wdzięczny za wszelkie uwagi i wskazówki. Próbowałem wykorzystać odległości Hamminga i Levenshteina, ale te algorytmy działają trochę inaczej niż bym chciał.



--------------------
Znalazłeś sam rozwiązanie swojego problemu? Nie pisz "już wiem, do zamknięcia". Podziel się rozwiązaniem - inni będą mieli łatwiej.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:52