




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
天津市大學(xué)軟件學(xué)院實驗報告課程名稱:串匹配算法實驗姓名: 陳小龍 學(xué)號:1150210403班級: 業(yè)務(wù)1114 串匹配問題一、實驗題目:給定一個主串,在該主串中查找并定位任意給定字符串。二、實驗?zāi)康模?1)深刻理解并掌握蠻力法的設(shè)計思想;(2)提高應(yīng)用蠻力法設(shè)計算法的技能;(3)理解這樣一個觀點:用蠻力法設(shè)計的算法,一般來說,經(jīng)過適度的努力后,都可以對算法的第一個版本進(jìn)行一定程度的改良,改進(jìn)其時間性能。三、實驗分析:串匹配問題的BF算法1 在串S中和串T中設(shè)比較的下標(biāo)i=1和j=1; 2 循環(huán)直到S中所剩字符個數(shù)小于T的長度或T中所有字符均比較完 2.1 k=i 2.2 如果Si=Tj,則比較S和T的下一字符,否則 2.2 將i和j回溯(i=k+1; j=1)3 如果T中所有字符均比較完,則匹配成功,返回k 否則匹配失敗,返回0 時間復(fù)雜度:設(shè)匹配成功發(fā)生在si處,則在i-1趟不成功的匹配中比較了(i-1)m次,第i趟成功匹配共比較了m次,所以總共比較了im次,因此平均比較次數(shù)是:i=1n-m+1pi(im)= i=1n-m+11n-m+1(im)= m(n-m+2)2一般情況下,mn,因此最壞情況下時間復(fù)雜度是(nm)。串匹配問題的KMP算法實現(xiàn)過程:在串S和串T中高比較的起始下標(biāo)i和j;循環(huán)直到S中所剩字符小于T的長度或T的所有字符均比較完(如果Si=Tj,則繼續(xù)比較S和T的下一個字符;否則將j向右滑動到nextj位置,即j=nextj;如果j=0,則將i和j分別+1,準(zhǔn)備下趟比較,至于其中的next在此不作詳細(xì)講解);如果T中所有字符均比較完,則匹配成功,返回匹配的起始下標(biāo);否則匹配失敗,返回0。時間復(fù)雜度:(n+m),當(dāng)mn時,KMP算法的時間復(fù)雜性是(n)。四、實驗所用語言和運行環(huán)境C+,運行環(huán)境Microsoft Visual C+ 6.0五、實驗過程的原始記錄BF算法程序代碼#include#includevoid main() cout請輸入主串并且以0和回車結(jié)束endl;char s100;char t100;for(int m=0;msm;if(sm=0)sm=0;break;cout您輸入的主串為:;for(int o=0;ostrlen(s);+o)coutso;coutendl;cout主串長度:;coutstrlen(s); coutendlendl;cout請輸入子串并且以0和回車結(jié)束endl;for(int n=0;ntn;if(tn=0)tn=0;break;cout您輸入的子串為:;for(int a=0;astrlen(t);+a)coutta; coutendl; cout子串長度:; coutstrlen(t);coutendl;coutendl+BF算法+endl; int i,j,k,y=0; for(i=0;istrlen(s)-strlen(t)+1;) k=i; for(j=0;jstrlen(t);) if(si=tj) if(j=strlen(t)-1) cout找到了相同的字串:;cout位置在主串的第i-j+1的位置上; coutendl;y=1;break; +i; +j; else j=0;break;i=k+1;if(y=1)break;if(i=strlen(s)-strlen(t)+1&j!=strlen(t)-1)cout沒有找到可以匹配的子串endl;程序執(zhí)行結(jié)果:查找到了子串 沒有查找到子串KMP算法程序代碼#include#include/前綴函數(shù)值,用于KMP算法int GETNEXT(char t,int b)int NEXT10;NEXT0=-1;int j,k;j=0;k=-1;while(jstrlen(t)if (k=-1)|(tj=tk)j+;k+;NEXTj=k;else k=NEXTk;b=NEXTb;return b;int KMP(char s,char t)int a=0;int b=0;int m,n;m=strlen(s);/主串長度n=strlen(t);/子串長度coutendl+KMP算法+endl;while(a=m-n)while(sa=tb&b!=n)a+;b+;if(b=n)cout找到了相應(yīng)的子串位置在主串:a-b+1endl;return 0;b=GETNEXT(t,b);a=a-b;if(b=-1) b+;cout沒有找到匹配的子串!endl;return 0;void main() cout請輸入主串并且以0和回車結(jié)束endl;char s100;char t100;for(int m=0;msm;if(sm=0)sm=0;break;cout您輸入的主串為:;for(int o=0;ostrlen(s);+o)coutso;coutendl;cout主串長度:;coutstrlen(s); coutendlendl;cout請輸入子串并且以0和回車結(jié)束endl;for(int n=0;ntn;if(tn=0)tn=0;break;cout您輸入的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)單位人員第五輪聘用合同續(xù)簽
- 整體思維的幼兒園數(shù)學(xué)試題及答案
- 時間管理2025年商務(wù)英語考試試題及答案
- 物業(yè)客服面試試題及答案
- 大學(xué)化學(xué)元素與化合物性質(zhì)試題及答案
- 理解土木工程生命線工程的試題及答案
- 商務(wù)英語口頭表達(dá)能力試題及答案
- 新能源汽車市場需求的增長趨勢試題及答案
- 幼兒園數(shù)學(xué)自我評估試題及答案
- 大學(xué)物理考試課程反饋的試題及答案
- T-COFA 0021-2022 漁用油電混合多旋翼無人機(jī)安全檢查和維 護(hù)保養(yǎng)要求
- 2025屆河北省“五個一”名校聯(lián)盟高三下學(xué)期4月聯(lián)考化學(xué)試題(含答案)
- 山東省泰安市2025屆高三二輪模擬檢測考試政治(泰安二模)(含答案)
- GB/T 31928-2015船舶用不銹鋼無縫鋼管
- GB/T 28046.4-2011道路車輛電氣及電子設(shè)備的環(huán)境條件和試驗第4部分:氣候負(fù)荷
- 中藥學(xué)-七版教材
- 配位化學(xué)-配合物結(jié)構(gòu)的表征和測試研究課件
- 《文物保護(hù)技術(shù)概論》課件 8.第七章 壁畫保護(hù)
- 電力排管檢驗批
- 深度學(xué)習(xí)人工智能在醫(yī)療圖像處理中的應(yīng)用課件
- 自動涂膠機(jī)機(jī)械系統(tǒng)設(shè)計和實現(xiàn) 機(jī)械制造自動化專業(yè)
評論
0/150
提交評論