[go: up one dir, main page]

Bước tới nội dung

Trie

Bách khoa toàn thư mở Wikipedia

Đây là một phiên bản cũ của trang này, do InternetArchiveBot (thảo luận | đóng góp) sửa đổi vào lúc 05:32, ngày 29 tháng 9 năm 2020 (Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.7). Địa chỉ URL hiện tại là một liên kết vĩnh viễn đến phiên bản này của trang, có thể khác biệt rất nhiều so với phiên bản hiện hành.

Trong khoa học máy tính, trie, hay cây tiền tố, là một cấu trúc dữ liệu sử dụng cây có thứ tự, dùng để lưu trữ một mảng liên kết của các xâu ký tự. Không như cây nhị phân tìm kiếm, mỗi nút trong cây không liên kết với một khóa trong mảng. Thay vào đó, mỗi nút liên kết với một xâu ký tự sao cho các xâu ký tự của tất cả các nút con của một nút đều có chung một tiền tố, chính là xâu ký tự của nút đó. Nút gốc tương ứng với xâu ký tự rỗng.

Thuật ngữ trie xuất phát từ từ tiếng Anh retrieval. Theo từ nguyên học, người phát minh ra trie là Edward Fredkin phát âm nó là cây / triː/.[1] Tuy nhiên nhiều tác giả khác lại phát âm là /ˈtraɪ/.[1][2]

Khóa trong trie không nhất thiết phải là xâu ký tự mà có thể là một danh sách có thứ tự của bất kì đối tượng nào, chẳng hạn như chữ số, hay hình dạng.

Lợi thế của trie so với các cấu trúc dữ liệu tìm kiếm khác

Sau đây là những lợi thế chính của trie so với cây nhị phân tìm kiếm:

  • Thời gian tìm kiếm nhỏ hơn. Thao tác tìm kiếm một khóa độ dài m đòi hỏi phép so sánh ký tự. Một cây nhị phân tìm kiếm sử dụng phép so sánh xâu ( là số lượng khóa). Trong trường hợp xấu nhất, cây nhị phân tìm kiếm cần dùng phép so sánh ký tự.
  • Trie sử dụng ít bộ nhớ hơn bởi các tiền tố chung chỉ cần được lưu trữ một lần
  • Trie cho phép tìm kiếm tiền tố trùng hợp dài nhất.
  • Số lượng nút từ gốc tới lá đúng bằng độ dài của khóa.

Sau đây là những lợi thế chính của trie so với bảng băm:

  • Trie cho phép liệt kê các khóa theo thứ tự từ điển
  • Trie cho phép tìm kiếm tiền tố trùng hợp dài nhất
  • Do không phải tính hàm băm nên trie thường nhanh hơn bảng băm trong trường hợp khóa bé chẳng hạn như số nguyên hay con trỏ.

Ứng dụng

Thay thế các cấu trúc dữ liệu khác

Như đã nói ở trên, trie có nhiều ưu điểm so với cây nhị phân tìm kiếm. Trie cũng có thể được dùng thay cho bảng băm.

Biểu diễn từ điển

Một ứng dụng phổ biến của trie là dùng để biểu diễn từ điển.. Trie đặc biệt phù hợp cho các ứng dụng đòi hỏi tìm kiếm xấp xỉ, chẳng hạn như phần mềm soát lỗi chính tả.

Xem thêm

Ghi chú

  1. ^ a b Black, Paul E. (ngày 16 tháng 11 năm 2009). “trie”. Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. Bản gốc lưu trữ ngày 19 tháng 5 năm 2010. Truy cập ngày 22 tháng 6 năm 2011. Đã bỏ qua tham số không rõ |dead-url= (gợi ý |url-status=) (trợ giúp)
  2. ^ Knuth, Donald (1997). “6.3: Digital Searching”. The Art of Computer Programming Volume 3: Sorting and Searching (ấn bản thứ 2). Addison-Wesley. tr. 492. ISBN 0201896850.