Tôi có một danh sách dài các từ và tôi muốn hiển thị các từ bắt đầu bằng văn bản do người dùng nhập. Khi người dùng nhập một ký tự, ứng dụng sẽ cập nhật danh sách được hiển thị cho người dùng. Nó sẽ giống như AutoCompleteTextView trên Android. Tôi chỉ tò mò về cấu trúc dữ liệu tốt nhất để lưu trữ các từ để tìm kiếm rất nhanh.Cấu trúc dữ liệu tốt nhất để hoàn thành tự động văn bản là gì?
Trả lời
Có thể sử dụng bộ ba. http://en.wikipedia.org/wiki/Triehttps://stackoverflow.com/search?q=trie
Một bài viết tốt đẹp - http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/
PS: Nếu bạn có một số tiểu cảnh quay "không chi nhánh", sau đó bạn có thể tiết kiệm không gian bằng cách sử dụng một Trie radix, mà là một thực hiện Trie mà đặt nhiều ký tự trong nút khi có thể - http://en.wikipedia.org/wiki/Radix_tree
Bạn có thể tìm thấy chủ đề này thú vị:
Nó không chính xác những gì bạn muốn, thay vào đó là một phiên bản hơi mở rộng của vấn đề của bạn.
Đối với việc thực hiện các chức năng tự động, cây tìm kiếm tam phân (TST) cũng được sử dụng:
http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/
Tuy nhiên, nếu bạn muốn tìm thấy bất kỳ chuỗi ngẫu nhiên trong một chuỗi, hãy thử một cây hậu tố tổng quát.
Tries (và các giống khác nhau của họ) là hữu ích ở đây. Điều trị chi tiết hơn về chủ đề này là trong số paper này. Có lẽ bạn có thể thực hiện một trie hoàn thành cho Android?
- 1. Cấu trúc dữ liệu tốt nhất cho bảng tra cứu trong bộ nhớ này là gì?
- 2. Cấu trúc dữ liệu tốt nhất và đơn giản
- 3. Vim tự động hoàn thành cấu trúc trong C
- 4. Cách tốt nhất để tạo bản sao sâu của cấu trúc dữ liệu trong Perl là gì?
- 5. Hộp văn bản Google Suggestish (tự động hoàn thành)
- 6. Cấu trúc dữ liệu hiệu quả nhất để thêm kiểu vào văn bản
- 7. Cấu trúc dữ liệu tốt nhất phù hợp để thực hiện trình soạn thảo như notepad là gì?
- 8. WPF: Hộp văn bản tự động hoàn thành, ... lại
- 9. Cách tốt nhất để dịch một lượng lớn dữ liệu văn bản là gì?
- 10. nhiều từ Văn bản tiên đoán/tự động hoàn thành?
- 11. Cấu trúc dữ liệu cho trình soạn thảo văn bản
- 12. Cấu trúc giải pháp MVC3 tốt nhất là gì?
- 13. Văn bản chưa được cấu trúc cho dữ liệu có cấu trúc
- 14. Cơ sở dữ liệu "tốt nhất" để nhúng là gì?
- 15. Cấu trúc dữ liệu tốt để sử dụng cho việc giữ hai giá trị là gì?
- 16. Việc sử dụng cấu trúc dữ liệu Heap là gì?
- 17. Cách tốt nhất để tự động hoàn tất Python/intellisense trong Vim là gì?
- 18. Hộp văn bản tự động hoàn thành trong WPF
- 19. Cấu trúc dữ liệu tốt nhất cho dữ liệu chuỗi thời gian
- 20. Thời gian chạy tốt nhất/tồi tệ nhất/trung bình Big-O của cấu trúc dữ liệu Trie là gì?
- 21. Văn bản tự động hoàn thành trong android?
- 22. Cấu trúc dữ liệu OCaml chuẩn với lặp lại nhanh nhất là gì?
- 23. Cấu trúc dữ liệu tốt nhất để lưu trữ một bộ bốn (hoặc nhiều hơn) giá trị là gì?
- 24. thực hành tốt nhất về cấu trúc dữ liệu cho nguồn dữ liệu UITableView
- 25. Cấu trúc dữ liệu cơ bản của một bộ STL trong C++ là gì?
- 26. jQuery UI Tự động hoàn thành Không lọc dữ liệu
- 27. Cấu trúc cơ sở dữ liệu sonar là gì?
- 28. Ajax/Jquery Tự động hoàn thành với dữ liệu JSON
- 29. cấu trúc dữ liệu cơ bản của danh sách STL, vector và thiết lập là gì?
- 30. Dữ liệu làm mới tự động hoàn thành UI UI
Tôi nghĩ bảng băm sẽ là tốt nhất. Tôi không chắc chắn về ngôn ngữ hoặc nền tảng bạn đang sử dụng, vì vậy nói chung bảng băm nhanh và năng động. – c0d3Junk13
cũng ... trước tiên chúng tôi cần biết nền tảng bạn đang làm việc. Android? iOS? Các cửa sổ? Linux? OSX? Web hoặc HTML? –
@ c0d3Junk13 Bạn sẽ tìm kiếm các chuỗi với một tiền tố đã cho trong một hashtable như thế nào? – delnan