Mam długą listę słów i chcę pokazać słowa zaczynające się od tekstu wprowadzonego przez użytkownika. Gdy użytkownik wprowadzi znak, aplikacja powinna zaktualizować listę wyświetlaną użytkownikowi. Powinien być jak AutoCompleteTextView na Androida. Ciekawi mnie tylko najlepsza struktura danych do przechowywania słów, aby wyszukiwanie było bardzo szybkie.Jaka jest najlepsza struktura danych do automatycznego uzupełniania tekstu?
Odpowiedz
Można użyć tria. http://en.wikipedia.org/wiki/Triehttps://stackoverflow.com/search?q=trie
Miły artykuł - http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/
PS: Jeśli masz jakieś podrzędne sekwencje, które „nie rozgałęzia”, a następnie można zaoszczędzić miejsce przy użyciu Trie radix, który jest wdrożenie trie, które stawia kilka znaków w węźle, gdy to możliwe - http://en.wikipedia.org/wiki/Radix_tree
można znaleźć ten wątek interesujący:
Nie jest to dokładnie to, czego potrzebujesz, zamiast tego jest to nieco rozszerzona wersja twojego problemu.
Dla realizacji funkcji autouzupełniania, używane potrójne drzewa wyszukiwania (TST) są również:
http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/
Jednakże, jeśli chcesz znaleźć żadnej losowy fragment ciągu sznurku, spróbuj uogólnionego drzewo przyrostek.
Próbuje (i ich różne odmiany) są tutaj przydatny. Bardziej szczegółowe traktowanie na ten temat jest w tym paper. Może możesz zaimplementować procedurę realizacji dla Androida?
- 1. Jaka jest najlepsza struktura rozwiązania MVC3?
- 2. JAVA - Najlepsza odpowiednia struktura danych
- 3. Najlepsza struktura danych dla szeregów czasowych Dane
- 4. Najlepsza struktura danych reprezentująca planszę gry
- 5. Jaka jest najlepsza struktura aplikacji korzystającej z ngrx?
- 6. Najlepsza struktura danych STL znaleźć elementy nieuporządkowane
- 7. Która struktura danych byłaby najlepsza dla tego?
- 8. Jaka jest najlepsza baza danych do użycia z programem java?
- 9. Jaka jest najlepsza metoda przechowywania wartości domyślnych w bazie danych?
- 10. Uzyskiwanie automatycznego uzupełniania angularJS w Webstorm/PHPStorm
- 11. Jaka jest najlepsza biblioteka do tworzenia automatycznego sugerowania AJAX w formularzu WWW?
- 12. Funkcja automatycznego uzupełniania VS2015 nie działa
- 13. Jaka jest struktura pliku MIDI?
- 14. Najbardziej wydajna struktura danych do dodawania stylów do tekstu
- 15. Własna lista opcji automatycznego uzupełniania w ios przy użyciu monotouch
- 16. Jaka jest podstawowa struktura danych dla list Pythona?
- 17. Jaka jest dobra struktura danych dla okresowych lub cyklicznych dat?
- 18. Modyfikowanie funkcji automatycznego uzupełniania w tekstach wysublimowanych 2
- 19. Jaka jest podstawowa struktura std :: initializer_list?
- 20. Jaka jest podstawowa struktura danych zestawu STL w C++?
- 21. Jaka jest struktura pamięci cvMat OpenCV?
- 22. Najlepsza struktura danych w C++, aby znaleźć ciąg w słowniku
- 23. Jaka jest najlepsza biblioteka matematyki do użycia w java?
- 24. Jaka jest odpowiednia struktura danych i schemat bazy danych do przechowywania reguł logicznych?
- 25. Jaka jest najlepsza biblioteka open source Pythona do rysowania wykresów?
- 26. jaka jest prawidłowa struktura wewnętrzna pliku JAR
- 27. Jak zapobiec opcji automatycznego uzupełniania "Użyj hasła dla:" w chrome?
- 28. najlepszy sposób na zainstalowanie trybu automatycznego uzupełniania emacs
- 29. Struktura danych użyta do implementacji arkuszy kalkulacyjnych
- 30. Jaka jest (najlepsza) krótka nazwa aplikacji Silverlight?
Myślę, że tabela hash byłaby najlepsza. Nie jestem pewien języka ani platformy, z której korzystasz, więc ogólnie tablice hash są szybkie i dynamiczne. – c0d3Junk13
cóż ... najpierw musimy znać platformę, z którą pracujesz. Android? iOS? Windows? Linux? OSX? Internet lub HTML? –
@ c0d3Junk13 Jak wyszukiwałbyś ciągi z danym prefiksem w tablicy hashtable? – delnan