Wątek zablokowany 2013-07-15 22:15 przez msm.

fast algor - szukanie wg wzorca

4

Zamiast być gołosłownym to lepiej pokazać, że coś działa.
Jako, że miałem troszkę czasu, w załączniku projekt Qt z moją metodą (każdy dowolny znak, który nie jest polskim znakiem jest traktowany jako dowolna litera). Słownik do pobrania można znaleźć tutaj.
Na moim dość starym laptopie (Intel Core 2 Duo 2GHz), wyniki daje w zasadzie natychmiast.
Jedynie bardzo długie hasła z jedną literą 'a' zajmują odczuwalny kawałek czasu, ale opóźnienie to wynika z przygotowania danych do wyświetlania (budowanie modelu), gdy danych jest bardzo dużo. Gdybym napisał swój model danych problem zniknie całkowicie.


Okazało się, że jest bug w QListView :) i dlatego performance bywa do bani (zawsze tworzy wszystkie elementy zamiast tylko te widoczne). W załączniku dałem nową wersje z modelem danych i zmieniłem QListView na QTableView i teraz zawsze działa szybko.
Oczyściłem jeszcze kod (literówki i pozostałości z poprzedniej wersji).
0
MarekR22 napisał(a):

Na moim dość starym laptopie (Intel Core 2 Duo 2GHz), wyniki daje w zasadzie natychmiast.

Co natychmiast?
Ma być milion wyszukań na sekundę dla losowych wzorców!

MarekR22 napisał(a):

Jedynie bardzo długie hasła z jedną literą 'a' zajmują odczuwalny kawałek czasu, ale opóźnienie to wynika z przygotowania danych do wyświetlania (budowanie modelu), gdy danych jest bardzo dużo. Gdybym napisał swój model danych problem zniknie całkowicie.

To fatalnie, bo w moim zastosowaniu będą najczęściej wzorce z niewielką liczbą liter - najczęściej 1, 2 i 3.

Program ma układać właśnie krzyżówki, więc wyszukujemy tu ciągle i do zmieniających się wzorców, aż do zapełnienia całej matrycy słowami.
W średniej krzyżówce, tj. o wymiarach z 15 x 15 jest około 50 słówek, i o długościach od 3 do 15, rzecz jasna.

3

Co natychmiast?
Ma być milion wyszukań na sekundę dla losowych wzorców!

To fatalnie, bo w moim zastosowaniu będą najczęściej wzorce z niewielką liczbą liter - najczęściej 1, 2 i 3.

Wydaje mi się żę ta rozmowa zmierza do niczego. Nie wspominając że Co natychniast?, Ma być (...)!, To fatalnie, nie jest zbyt miłą odpowiedzią dla kogoś kto chce pomóc (oczekujesz grzeczności, grzecznym bądź).

Program ma układać właśnie krzyżówki, więc wyszukujemy tu ciągle i do zmieniających się wzorców, aż do zapełnienia całej matrycy słowami.

Nie mogłeś tego napisać od razu (było jedynie niejasne wspomnienie o rozwiązywaniu krzyżówki)? Podejrzewam że od początku upatrzyłeś sobie jakieś bezsensowne rozwiązanie i próbujesz jak koń pod górę go zaimplementować.

Napisz dokładnie co chcesz zrobić i dopiero wtedy będzie można Ci pomóc. W nowym wątku, żeby ktoś kto trafi na to pytanie nie musiał czytać trzech stron postów z których nic nie wynika - dlatego też ten blokuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1