热门问题
时间线
聊天
视角
字尾陣列
来自维基百科,自由的百科全书
Remove ads
在電腦科學里, 字尾陣列(英語:suffix array)是一個通過對字串的所有字尾經過排序後得到的陣列。此資料結構被運用於全文索引、資料壓縮演算法、以及生物資訊學。
Remove ads
字尾陣列被烏迪·曼伯爾與尤金·邁爾斯於1990年提出,作為對字尾樹的一種替代,更簡單以及節省空間。它們也被Gaston Gonnet 於1987年獨立發現,並命名為「PAT陣列」。
在2016年,李志澤,李建和霍紅衛(頁面存檔備份,存於網際網路檔案館)提出了第一個時間複雜度(線性時間)和空間複雜度(常數空間)都是最佳的字尾陣列構造演算法,解決了該領域長達10年的open problem。
Remove ads
定義
令字串, 表示的子字串,下標從到。
的字尾陣列被定義為一個陣列,內容是的所有字尾經過字典排序後的起始下標。
對於所有的有:: 。
Remove ads
例子
考慮字串 =banana$
:
字串的結尾是特殊字元$
,用作特殊標誌。該字串有以下字尾:
字尾經過升序排序後:
字尾陣列 包含這些字尾的起始位置:
Remove ads
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads