• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當(dāng)前位置: 首頁 > 專利查詢>農(nóng)革專利>正文

    基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法技術(shù)

    技術(shù)編號(hào):6039694 閱讀:1003 留言:0更新日期:2012-04-11 18:40
    本發(fā)明專利技術(shù)公開了一種基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法,它包括:1)從右向左掃描字符串S,比較當(dāng)前掃描的兩個(gè)相鄰字符S[i]和S[i+1],得出每個(gè)字符和后綴的類型,用數(shù)組t記錄;2)從左向右掃描數(shù)組t,找出所有d-字符出現(xiàn)的位置,獲取所有d-子串的首字母指針,用P1來記錄每個(gè)d-子串的指針;3)通過d-子串指針數(shù)組P1、數(shù)組B和SA來對(duì)S中所有的d-加權(quán)子串進(jìn)行基數(shù)排序;4)根據(jù)3)排序的結(jié)果重新命名字符串S中的各個(gè)d-加權(quán)子串,形成縮短的新串S1;5)如果S1的每個(gè)字符都是唯一的,則直接排序S1的各后綴來計(jì)算S1的后綴數(shù)組SA1,否則以S1和SA1作為輸入?yún)?shù)遞歸調(diào)用SA-IS算法;6)根據(jù)5)中獲得的S1的后綴數(shù)組SA1歸納計(jì)算S的后綴數(shù)組SA;7)返回。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專利技術(shù)涉及一種字符串后綴數(shù)組構(gòu)造方法,尤其涉及一種通過計(jì)算機(jī)在線性時(shí)間內(nèi)利用基數(shù)排序自動(dòng)完成字符串后綴數(shù)組構(gòu)造的方法。
    技術(shù)介紹
    字符串后綴數(shù)組是后綴樹的一個(gè)節(jié)省空間的替代型數(shù)據(jù)結(jié)構(gòu),最先由Manber和Myers在文獻(xiàn)【1,2】中提出,可以在更小的空間內(nèi)實(shí)現(xiàn)等同后綴樹的算法。后綴數(shù)組在數(shù)據(jù)索引和模式匹配等應(yīng)用中有廣泛用途。本文專利技術(shù)了一個(gè)新的后綴數(shù)組構(gòu)造算法,利用基數(shù)排序和“切分-合并”方法在線性時(shí)間內(nèi)為任意給定的字符串構(gòu)造其后綴數(shù)組。在本文的陳述中用到以下術(shù)語:字符集一個(gè)字符集∑是一個(gè)建立了全序關(guān)系的集合,即∑中任意兩個(gè)不同的元素α和β都可以比較大小,要么α<β,要么α>β。字符集∑中的元素稱為字符,其中最小的字符為‘$’。本文所涉及的字符集大小假設(shè)為一個(gè)常數(shù)O(1)。字符串一個(gè)長度為n的字符串S是將n個(gè)屬于字符集∑中的字符按其位置依次排列形成的數(shù)組S[0..n-1],S的結(jié)束符固定為‘$’,并且‘$’不在S中的其它位置出現(xiàn)。子串字符串S的子串S[i..j],i≤j,表示S串中從位置i到位置j的一段字符串,也就是由字符S[i],S[i+1],...,S[j]組成的字符串。后綴字符串S的一個(gè)后綴是指從某個(gè)位置i開始到結(jié)束符$的一個(gè)子串。從第i個(gè)字符開始的后綴表示為suf(S,i),也就是suf(S,i)=S[i..n-1]。字符和后綴類型S中的字符分為L和S兩種類型:1)‘$’為S類型;2)S[i],i∈[1,n-1]為S類型,當(dāng)且僅當(dāng)suf(S,i)<suf(S,i+1),即S[i]<S[i+1]或者S[i]=S[i+1]且S[i+1]為S型。3)S[i],i∈[1,n-1]為L類型,當(dāng)且僅當(dāng)suf(S,i)>suf(S,i+1),即S[i]>S[i+1]或者S[i]=S[i+1]且S[i+1]為L型;4)后綴suf(S,i)是S類型當(dāng)且僅當(dāng)字符S[i]為S類型;后綴suf(S,i)是L類型當(dāng)且僅當(dāng)字符S[i]為L類型。LMS(leftmost?S-type,最左S類型)字符和后綴1)‘$’為LMS字符;2)S[i],i∈[1,n-1]為LMS字符,當(dāng)且僅當(dāng)S[i]為S類型且S[i-1]為L類型;3)后綴suf(S,i)是LMS后綴當(dāng)且僅當(dāng)字符S[i]為LMS字符。LMS子串1)‘$’為LMS子串;2)S[i..j]為LMS子串,當(dāng)且僅當(dāng)1≤i<j<n,S[i]和S[j]同為LMS字符,且S[i]和S[j]之間不存在其他LMS字符。指針數(shù)組指針數(shù)組P1記錄字符串S中所有LMS子串的首字母所在的位置,即-->P1[i]記錄字符串S中(從左到右)第i+1個(gè)LMS子串的首字母在S中的位置。字符串大小比較兩個(gè)字符串的大小比較,是指通常所說的“字典順序”比較,亦即對(duì)于兩個(gè)字符串u和v,令i從0開始順次比較u[i]和v[i]。如果u[i]=v[i]則令i加1再繼續(xù)比較下一個(gè)u[i]和v[i],否則若u[i]<v[i]則認(rèn)為u<v,或者u[i]>v[i]則認(rèn)為u>v。后綴數(shù)組S的后綴數(shù)組SA是一個(gè)包含n個(gè)整數(shù)的一維數(shù)組,對(duì)于i∈[0,n-1]滿足suf(S,SA[i])<suf(S,SA[i+1])。也就是將S的n個(gè)后綴從小到大進(jìn)行排序之后把排好序的各后綴首字母在S中的位置從左到右順次放入SA中。d-字符字符串S中的字符S[i]是d-字符,d≥2,當(dāng)且僅當(dāng)滿足以下條件:1)S[i]是一個(gè)LMS字符;或者2)S[i-d]是d-字符,S[i+1]不是LMS字符,并且子串S[i-d+1..i-1]內(nèi)沒有d-字符。d-子串對(duì)S中的每個(gè)d-字符S[i],d≥2和i<n-d-1,子串S[i..i+d+1]稱為一個(gè)d-子串。如果i≥n-d-1,則S[i..i+d+1]=S[i..n-2]{S[n-1]本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】
    一種基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法,其特征在于,它包括:1)標(biāo)記字符串中每個(gè)字符和后綴的類型,從右向左掃描一遍字符串S,按照后綴類型的定義比較當(dāng)前掃描的兩個(gè)相鄰字符S[i]和S[i+1], 得出每一個(gè)字符和后綴的類型,用數(shù)組t來記錄;2)從左向右掃描一遍數(shù)組t,找出所有d-字符出現(xiàn)的位置,從而獲取所有d-子串的首字母指針,用P1來記錄每一個(gè)d-子串的指針;3)通過d-子串指針數(shù)組P1、數(shù)組?。潞停樱羴韺?duì)S中所有的d-加權(quán)子串進(jìn)行基數(shù)排序;4)根據(jù)3)排序的結(jié)果重新命名字符串S中的各個(gè)d-加權(quán)子串,形成一個(gè)縮短了的新串S1;5)如果S1的每個(gè)字符都是唯一的,則直接排序S1的各后綴來計(jì)算S1的后綴數(shù)組SA1,否則以S1和SA1作為輸入?yún)?shù)遞歸調(diào)用SA-IS算法,即SA-DS(S1,?。樱粒保?;6)根據(jù)5)中獲得的S1的后綴數(shù)組?。樱粒睔w納計(jì)算S的后綴數(shù)組SA;7)返回。

    【技術(shù)特征摘要】
    1.一種基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法,其特征在于,它包括:1)標(biāo)記字符串中每個(gè)字符和后綴的類型,從右向左掃描一遍字符串S,按照后綴類型的定義比較當(dāng)前掃描的兩個(gè)相鄰字符S[i]和S[i+1],?得出每一個(gè)字符和后綴的類型,用數(shù)組t來記錄;2)從左向右掃描一遍數(shù)組t,找出所有d-字符出現(xiàn)的位置,從而獲取所有d-子串的首字母指針,用P1來記錄每一個(gè)d-子串的指針;3)通過d-子串指針數(shù)組P1、數(shù)組?B和SA來對(duì)S中所有的d-加權(quán)子串進(jìn)行基數(shù)排序;4)根據(jù)3)排序的結(jié)果重新命名字符串S中的各個(gè)d-加權(quán)子串,形成一個(gè)縮短了的新串S1;5)如果S1的每個(gè)字符都是唯一的,則直接排序S1的各后綴來計(jì)算S1的后綴數(shù)組SA1,否則以S1和SA1作為輸入?yún)?shù)遞歸調(diào)用SA-IS算法,即SA-DS(S1,?SA1);6)根據(jù)5)中獲得的S1的后綴數(shù)組?SA1歸納計(jì)算S的后綴數(shù)組SA;7)返回。2.根據(jù)權(quán)利要求1所述的基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法,其特征在于,所述步驟?3)中對(duì)S中所有d-加權(quán)子串進(jìn)行基數(shù)排序的過程包括:31)對(duì)所有d-加權(quán)子串的最后一個(gè)字符進(jìn)行兩輪基數(shù)排序:先根據(jù)每個(gè)字符的類型進(jìn)行基數(shù)排序,然后再根據(jù)每個(gè)字符的大小進(jìn)行基數(shù)排序;32)在步驟31)的排序結(jié)果上,繼續(xù)對(duì)所有d-加權(quán)子串根據(jù)它們的前d+1個(gè)字符進(jìn)行基數(shù)排序:從每個(gè)d-加權(quán)子串的倒數(shù)第二個(gè)字符開始到第一個(gè)字符結(jié)束,每輪根據(jù)一個(gè)字符排序,總共排d+1輪。3.根據(jù)權(quán)利要求2所述的基于基數(shù)排序的字符串后綴數(shù)組構(gòu)造方法,其特征在于,所述步驟?4)中計(jì)算新字符串S1的步驟包括:41)從左向右掃描SA數(shù)組中已排序的所有d-加...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:農(nóng)革,
    申請(qǐng)(專利權(quán))人:農(nóng)革,
    類型:發(fā)明
    國別省市:81

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 免费无码婬片aaa直播表情| 亚洲AV无码精品蜜桃| 永久免费无码网站在线观看个 | 精品无码中出一区二区| 西西4444www大胆无码| 精品无码人妻夜人多侵犯18 | 国产精品无码AV天天爽播放器| 亚洲乱亚洲乱少妇无码| 亚洲中文字幕无码av| 亚洲人成人无码网www电影首页| 亚洲AV无码成人精品区在线观看 | 亚洲爆乳无码专区| 97在线视频人妻无码| 精品久久久久久无码不卡| 国产精品99久久久精品无码 | 日日日日做夜夜夜夜无码 | 日韩加勒比一本无码精品| 无码精品人妻一区二区三区人妻斩 | 少妇无码一区二区三区| 精品人体无码一区二区三区| 人妻在线无码一区二区三区| 人妻丰满熟妇岳AV无码区HD| 亚洲欧洲日产国码无码网站| 亚洲人成无码久久电影网站| 日韩aⅴ人妻无码一区二区| 亚洲AV无码之国产精品| 无码精品A∨在线观看十八禁| 国产产无码乱码精品久久鸭 | 亚洲AV无码成人精品区在线观看 | 国产AV无码专区亚洲AV琪琪| 无码无需播放器在线观看| 99久久人妻无码精品系列| 亚洲爆乳无码一区二区三区| 亚洲欧洲无码AV电影在线观看| 精品无码综合一区| 在线高清无码A.| 一区二区三区人妻无码| 无码H肉动漫在线观看| 无码伊人66久久大杳蕉网站谷歌| 中文无码人妻有码人妻中文字幕| 中文字幕无码日韩专区免费|