版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章串串的定義串的存儲(chǔ)結(jié)構(gòu)串的模式匹配4.1串的定義2描述各種信息的文字符號(hào)序列通常稱為字符串,簡稱串。在計(jì)算機(jī)上的非數(shù)值處理一般都是字符串?dāng)?shù)據(jù)。串是一種內(nèi)容受限的線性表。串是由零個(gè)或多個(gè)字符構(gòu)成的有限序列,記為:s="a1a2…an"例如:"thisisastring","is"
,"
"
串長:串值中字符個(gè)數(shù)(n)空串:長度為0的串空格串:僅含有空格字符的串(n不為0)子串:串中若干相鄰字符組成的子序列主串:包含子串的串子串中第0個(gè)字符在主串中出現(xiàn)的位置稱為此子串在該主串中的位置。
串名串值串之間的大小關(guān)系:設(shè)s1="a0a1…am-1",s2="b0b1…an-1"若m=n且ai=bi,i=0,1,…m-1,則s1=s2(2)滿足下面條件之一,則s1<s2m<n,且ai=bi,i=0,1,…m-1 例如:"abc"與"abcd"存在某個(gè)0<k≤min(m,n),使得ai=bi,i=0,1,…k-1,ak<bk
例如:"abc"與"adc"(3)不滿足以上條件,則s1>s24.1串的定義3串的抽象數(shù)據(jù)類型定義4.2串的存儲(chǔ)結(jié)構(gòu)1.串的順序存儲(chǔ)4串的順序存儲(chǔ)結(jié)構(gòu)簡稱為順序串。類似于順序表,順序串也是用一組地址連續(xù)的存儲(chǔ)單元存儲(chǔ)串中的字符序列。為了表示串的結(jié)尾,一般在串尾存儲(chǔ)一個(gè)不會(huì)在串中出現(xiàn)的特殊字符作為串的終結(jié)符。例如,C++語言中用’\0’表示串的結(jié)束。4.2串的存儲(chǔ)結(jié)構(gòu)2.串的鏈?zhǔn)酱鎯?chǔ)5串采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ)時(shí)稱為鏈串,可采用帶頭結(jié)點(diǎn)的單鏈表來表示。鏈串的組織形式與一般的單鏈表類似,主要區(qū)別在于鏈串中的一個(gè)結(jié)點(diǎn)可以存儲(chǔ)多個(gè)字符。通常將鏈串中每個(gè)結(jié)點(diǎn)所存儲(chǔ)的字符個(gè)數(shù)稱為結(jié)點(diǎn)大小。在鏈?zhǔn)酱鎯?chǔ)方式中,結(jié)點(diǎn)大小的選擇直接影響著串處理的效率。存儲(chǔ)密度?。ㄈ缃Y(jié)點(diǎn)大小為1)時(shí),運(yùn)算處理方便,但存儲(chǔ)占用量大。存儲(chǔ)密度大時(shí),一些基本操作(如插入、刪除)的實(shí)現(xiàn)有所不便,而且可能引起大量字符移動(dòng)結(jié)點(diǎn)大小為4的鏈表:結(jié)點(diǎn)大小為1的鏈表:結(jié)點(diǎn)大小大于1時(shí),鏈表的最后一個(gè)結(jié)點(diǎn)不一定全被串值占滿,未占用的數(shù)據(jù)域里應(yīng)補(bǔ)上不屬于串的字符集的特殊符號(hào)4.3串的模式匹配6設(shè)T="t0t1…tn-1",P="p0p1…pm-1",其中0<m≤n。如要在字符串T中查找是否有與字符串P相同的子串,則稱字符串T為目標(biāo)串或主串,稱字符串P為模式串或子串,在T中從位置pos開始查找與P相同的子串第一次出現(xiàn)的位置的過程稱為字符串模式匹配。4.3串的模式匹配1.BF算法7Brute-Force算法簡稱為BF算法,也稱簡單模式匹配算法。BF算法的基本思想是蠻力匹配,即從主串s的第一個(gè)字符開始和模式串t的第一個(gè)字符進(jìn)行比較,若相等,則繼續(xù)逐個(gè)比較后續(xù)字符;否則,從主串s的第二個(gè)字符開始重新與模式串t的第一個(gè)字符進(jìn)行比較,以此類推。若從主串s的第i個(gè)字符開始,每個(gè)字符依次和模式串t中的對(duì)應(yīng)字符相等,則匹配成功,返回位置i;否則,匹配失敗,返回-1。第1趟TabaababP
abab第2趟TabaababPabab第3趟TabaababPabab第4趟TabaababPabab4.3串的模式匹配1.BF算法8(1)用start保存主串比較的開始位置,初值為0。(2)用i和j指示主串s和模式串t中當(dāng)前正待比較的字符下標(biāo),i和j的初值均為0。(3)重復(fù)下述操作,直到s或t的所有字符比較完畢:①若s[i]和t[j]相等,則繼續(xù)比較s和t的下一對(duì)字符;②否則,下標(biāo)i和j分別回溯,開始下一趟匹配。(4)若t中所有字符全部比較完畢,則匹配成功,返回本趟匹配的起始位置;否則匹配失敗,返回0。【算法步驟】intBF(strings,stringt){ inti=0,j=0,start=0; while(i<s.length()&&j<t.length()) { if(s[i]==t[j]) { j++;i++; } else { start++; i=start; j=0; } } if(j==t.length()) returnstart+1;
else return0;}4.3串的模式匹配1.BF算法9最好情況每趟不成功的匹配都發(fā)生在模式串t的第一個(gè)字符與主串s中相應(yīng)字符的比較。假設(shè)從主串的第i個(gè)位置開始與模式串匹配成功,則前在i-1趟不成功的匹配中共比較了i-1次,第i趟成功的匹配中共比較了m次,總比較次數(shù)為i-1+m。對(duì)于成功匹配的主串,其起始位置由1到n-m+1,假設(shè)這n-m+1個(gè)位置上的匹配成功概率相等,則最好情況下匹配成功的平均比較次數(shù)為:【算法分析】設(shè)主串s長度為n,模式串t長度為m。時(shí)間復(fù)雜度為n+m
時(shí)間復(fù)雜度為n×m4.3串的模式匹配2.KMP算法10BF算法簡單但效率低。造成BF算法效率低的主要原因是回溯,即在某趟匹配失敗后,主串s要回溯到本趟匹配開始字符的下一個(gè)字符,模式串t要回溯到第一個(gè)字符,而這些回溯往往是不必要的。改進(jìn)算法——KMP消除回溯
本章小結(jié)(1)串是一種內(nèi)容受限的線性表,它限定了表中的元素為字符。(2)串有兩種基本存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)人才2024年薪金聘用協(xié)議書版
- 二零二五版冷鏈物流車輛貨物運(yùn)輸安全協(xié)議2篇
- 二零二五年藝術(shù)品搬運(yùn)運(yùn)輸服務(wù)合同3篇
- 二零二五版數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展合同范本2篇
- 2024施工合同匯集
- 二零二五年度鋼板租賃與節(jié)能減排服務(wù)協(xié)議3篇
- 個(gè)性化旅游顧問服務(wù)協(xié)議2024版版A版
- 2024版產(chǎn)品銷售協(xié)議6篇
- 二零二五年度高科技產(chǎn)業(yè)合伙人分家協(xié)議書3篇
- 二零二五年度智能工廠安全生產(chǎn)服務(wù)外包合同2篇
- 《用銳角三角函數(shù)解決問題(3)》參考課件
- 房地產(chǎn)營銷策劃 -佛山龍灣壹號(hào)學(xué)區(qū)房項(xiàng)目推廣策略提案方案
- 產(chǎn)品共同研發(fā)合作協(xié)議范本5篇
- 風(fēng)水學(xué)的基礎(chǔ)知識(shí)培訓(xùn)
- 2024年6月高考地理真題完全解讀(安徽?。?/a>
- 吸入療法在呼吸康復(fù)應(yīng)用中的中國專家共識(shí)2022版
- 1-35kV電纜技術(shù)參數(shù)表
- 信息科技課程標(biāo)準(zhǔn)測(2022版)考試題庫及答案
- 施工組織設(shè)計(jì)方案針對(duì)性、完整性
- 2002版干部履歷表(貴州省)
- DL∕T 1909-2018 -48V電力通信直流電源系統(tǒng)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論