




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
天津市大學(xué)軟件學(xué)院實(shí)驗(yàn)報(bào)告課程名稱:串匹配算法實(shí)驗(yàn)姓名: 陳小龍 學(xué)號:1150210403班級: 業(yè)務(wù)1114 串匹配問題一、實(shí)驗(yàn)題目:給定一個(gè)主串,在該主串中查找并定位任意給定字符串。二、實(shí)驗(yàn)?zāi)康模?1)深刻理解并掌握蠻力法的設(shè)計(jì)思想;(2)提高應(yīng)用蠻力法設(shè)計(jì)算法的技能;(3)理解這樣一個(gè)觀點(diǎn):用蠻力法設(shè)計(jì)的算法,一般來說,經(jīng)過適度的努力后,都可以對算法的第一個(gè)版本進(jìn)行一定程度的改良,改進(jìn)其時(shí)間性能。三、實(shí)驗(yàn)分析:串匹配問題的BF算法1 在串S中和串T中設(shè)比較的下標(biāo)i=1和j=1; 2 循環(huán)直到S中所剩字符個(gè)數(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 時(shí)間復(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,因此最壞情況下時(shí)間復(fù)雜度是(nm)。串匹配問題的KMP算法實(shí)現(xiàn)過程:在串S和串T中高比較的起始下標(biāo)i和j;循環(huán)直到S中所剩字符小于T的長度或T的所有字符均比較完(如果Si=Tj,則繼續(xù)比較S和T的下一個(gè)字符;否則將j向右滑動(dòng)到nextj位置,即j=nextj;如果j=0,則將i和j分別+1,準(zhǔn)備下趟比較,至于其中的next在此不作詳細(xì)講解);如果T中所有字符均比較完,則匹配成功,返回匹配的起始下標(biāo);否則匹配失敗,返回0。時(shí)間復(fù)雜度:(n+m),當(dāng)mn時(shí),KMP算法的時(shí)間復(fù)雜性是(n)。四、實(shí)驗(yàn)所用語言和運(yùn)行環(huán)境C+,運(yùn)行環(huán)境Microsoft Visual C+ 6.0五、實(shí)驗(yàn)過程的原始記錄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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 用電安全操作試題及答案
- 2015毛概題庫及答案
- 2011中考試題及答案
- 17高考試題及答案
- 《人才測評》題庫及答案
- 2025至2030年中國電子雨刮器行業(yè)市場競爭現(xiàn)狀及發(fā)展趨向研判報(bào)告
- 雨污分流管網(wǎng)改造建設(shè)項(xiàng)目規(guī)劃設(shè)計(jì)方案(模板范文)
- 一般固廢綜合利用處置中心工程實(shí)施方案(參考范文)
- 軌道交通智能制造研究-洞察闡釋
- 菜單設(shè)計(jì)與消費(fèi)者食物浪費(fèi)行為的動(dòng)態(tài)優(yōu)化路徑研究-洞察闡釋
- 2025年江西報(bào)業(yè)傳媒集團(tuán)招聘題庫帶答案分析
- 公司退貨流程管理制度
- MHD多相流體系統(tǒng)的建模與仿真-洞察闡釋
- 辦公軟件實(shí)操試題及詳細(xì)答案
- 礦產(chǎn)品銷售合作合同范本
- 米粉項(xiàng)目可行性分析報(bào)告
- 江蘇省常州市聯(lián)盟學(xué)校2022-2023學(xué)年高一下學(xué)期期末聯(lián)考數(shù)學(xué)試題(學(xué)生版)
- 2024-2025學(xué)年七年級下冊歷史期末測試模擬卷(統(tǒng)編版)(含答案)
- 2025年下半年山西晉城國投特種設(shè)備檢驗(yàn)檢測限公司招聘6人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 有效溝通技巧在護(hù)理中的應(yīng)用試題及答案
- 采購招標(biāo)廉潔培訓(xùn)課件
評論
0/150
提交評論