Tôi đang tìm kiếm thuật toán xây dựng nhanh suffix-array. Tôi quan tâm đến việc dễ triển khai và tốc độ thô hơn độ phức tạp tiệm cận (tôi biết rằng một mảng hậu tố có thể được xây dựng bằng cây hậu tố trong thời gian O (n), nhưng phải mất rất nhiều không gian; bad-O xấu nhất trường hợp phức tạp-O, nhưng chạy khá nhanh trong thực tế). Tôi không quan tâm các thuật toán tạo ra một mảng LCP như là một sản phẩm phụ, vì tôi vẫn cần một cho các mục đích của riêng tôi.Thuật toán xây dựng chuỗi hậu tố hiện đại nhất là gì?
Tôi đã tìm thấy taxonomy of various suffix array construction algorithms nhưng đã lỗi thời. Tôi đã nghe nói về SA-IS, qsufsort và BPR, nhưng tôi thực sự không biết chúng so sánh với nhau như thế nào, cũng như không có thuật toán nào tốt hơn nữa. Xem xét trường nóng của mảng hậu tố có vẻ như thế nào ngay bây giờ, tôi hy vọng rằng một số thuật toán khác đã thay thế các thuật toán đó kể từ khi chúng được xuất bản. Tôi dường như nhớ lại đang gặp một bài báo mô tả một thuật toán nhanh được gọi là "chia nhỏ", nhưng tôi không thể tìm thấy nó ngay bây giờ cho cuộc sống của tôi.
Vì vậy, trạng thái hiện tại của nghệ thuật là gì? Lý tưởng nhất, tôi muốn một danh sách ngắn các thuật toán tốt nhất hiện tại (với các liên kết, nếu có thể) và tổng quan nhanh về điểm mạnh và điểm yếu tương đối của chúng.
Chúc mừng :-) Cảm ơn vì điều này, đó là cách khai sáng nhất. Tôi không cho rằng bạn tình cờ biết SACA "tách" là gì? (Tôi không thể tìm thấy nơi tôi nhìn thấy nó, và tìm kiếm đang chứng minh vô hiệu) – Cameron
Aha, cuối cùng tôi đã tìm thấy "tách": Nó được đề cập trong [bài báo này] (http://goanna.cs.rmit.edu.au/~ sjp/awoca2006.pdf), phần 4 làm biệt hiệu cho thuật toán MSufSort – Cameron