我想了解Karkkainen,P. Sanders的線性時間後綴數組創建算法的實現。算法的細節可以找到here。瞭解執行DC3/Skew算法以創建後綴數組線性時間
我設法理解整體概念,但未能與提供的實現相匹配,因此無法清楚地理解它。
這裏是最初的代碼路徑令我困惑。
作爲每紙:N0,N1,N2表示三聯體編號開始在爲i mod 3 =(0,1,2)
由於每個代碼:N0 =(N + 2)/ 3中,n1 = (n + 1)/ 3,n2 = n/3; =>這些初始化是如何派生的?
作爲每紙:我們需要創建T`這是三聯體級聯在爲i mod 3 = 0
由於每個代碼:N02 = N0 + N2; s12 = [n02] ==> n02怎麼樣?它應該是n12,即n1 + n2。對於(int i = 0,j = 0; i < n +(n0 - n1); i ++)用三元組填充s12使得i%3!= 0; =>爲什麼循環運行n +(n0 - n1)次?它應該是簡單的n1 + n2。不應該?
我不能因爲這些:(請幫助進行
我知道這是一箇舊的答案,但你能否幫助我理解來自後綴數組紙的原始代碼。我已經給了差不多3天。我相信我理解了這個概念,但我仍然無法正確理解代碼。你能幫我做第二步嗎? – Naman 2015-06-12 01:21:07
@Naman如果您在算法中指定論文標題和具體步驟/行,我很樂意爲您提供幫助。 – ezorita 2015-06-12 10:49:46
感謝您的幫助。其實經過很多努力,我幾乎可以理解所有的事情。 – Naman 2015-06-12 22:53:16