後綴數組是處理字符串的有力工具。後綴數組是後綴樹的一個很是精巧的替代品,它比後綴樹容易編程實現,可以實現後綴樹的不少功能而時間複雜度也並不遜色,並且它比後綴樹所佔用的內存空間小不少。能夠說,在信息學競賽中後綴數組比後綴樹要更爲實用。html
倍增算法的主要思路是:用倍增的方法對每一個字符開始的長度爲 2^k的子字符串進行排序,求出排名,即 rank 值。k 從 0 開始,每次加 1,當 2^k大於 n 以後,每一個字符開始的長度爲 2^k的子字符串便至關於全部的後綴。而且這些子字符串都必定已經比較出大小,即 rank 值中沒有相同的值,那麼此時的 rank 值就是最後的結果。每一次排序都利用上次長度爲 2^(k-1)的字符串的 rank 值,那麼長度爲 2^k的字符串就能夠用兩個長度爲 2^(k-1)的字符串的排名做爲關鍵字表示,然後進行基數排序,便得出了長度爲 2^k的字符串的 rank 值。以字符串「aabaaaab」爲例,整個過程如圖 2 所示。其中 x、y 是表示長度爲 2^k的字符串的兩個關鍵字 。算法
後綴數組——處理字符串的有力工具編程
nocow數組
http://www.cnblogs.com/staginner/archive/2012/02/02/2335600.html工具
INBUILDINGspa