![實驗項目一 串匹配問題_第1頁](http://file4.renrendoc.com/view/089cc05adb500c8499942d613e4e9ab7/089cc05adb500c8499942d613e4e9ab71.gif)
![實驗項目一 串匹配問題_第2頁](http://file4.renrendoc.com/view/089cc05adb500c8499942d613e4e9ab7/089cc05adb500c8499942d613e4e9ab72.gif)
![實驗項目一 串匹配問題_第3頁](http://file4.renrendoc.com/view/089cc05adb500c8499942d613e4e9ab7/089cc05adb500c8499942d613e4e9ab73.gif)
![實驗項目一 串匹配問題_第4頁](http://file4.renrendoc.com/view/089cc05adb500c8499942d613e4e9ab7/089cc05adb500c8499942d613e4e9ab74.gif)
![實驗項目一 串匹配問題_第5頁](http://file4.renrendoc.com/view/089cc05adb500c8499942d613e4e9ab7/089cc05adb500c8499942d613e4e9ab75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗項目一串匹配問題實驗項目一串匹配問題實驗項目一串匹配問題資料僅供參考文件編號:2022年4月實驗項目一串匹配問題版本號:A修改號:1頁次:1.0審核:批準:發(fā)布日期:實驗項目一串匹配問題實驗題目給定一個文本,在該文本中任意查找并定位任意給定字符串。實驗目的深刻理解并掌握蠻力法的設(shè)計思想;提高應用蠻力法設(shè)計算法的技能;理解這樣一個觀點:用蠻力法設(shè)計的算法,一般來說,經(jīng)過適度的努力后,都可以對算法的第一個版本進行一定程度的改良,改進其時間性能。實驗要求實現(xiàn)BF算法;實現(xiàn)BF算法的改進算法:KMP算法和BM算法;對上述三個算法進行時間復雜性分析,并設(shè)計實驗程序驗證分析結(jié)果。實驗提示BF算法,KMP算法和BM算法都是串匹配問題中的經(jīng)典算法,BF算法和KMP算法請參見本章第節(jié)。下面介紹BM算法。BM算法是Boyer和Moore共同設(shè)計的快速匹配算法。BM算法與KMP算法的主要區(qū)別是匹配操作的方向不同。雖然BM算法僅把匹配操作的字符比較順序改為從左到右,但匹配發(fā)生失敗時,模式T右移的計算方法卻發(fā)生了較大的變化。實驗代碼BF算法代碼#include<>#include<>#defineN50voidmain(){chara[N],b[N];printf("請輸入待匹配的兩個字符串,主串a(chǎn)為:\n");gets(a);printf("模式串b為:\n");gets(b);inti=1,j=1,s,t;s=strlen(a);t=strlen(b);while(i<s&&j<t){if(a[i]==b[j]){i++;j++;}else{i=i-j+2;j=1;}}if(j>=t)printf("從a串的%d個字符開始匹配\n",i-j+1);elseprintf("匹配失敗\n");}KMP算法代碼#include<>#include<>#defineN50voidGetNext(chart[],intnext[]){next[1]=0;intj=1,k=0,h;h=strlen(t);while(j<h)if((k==0)||(t[j]==t[k])){j++;k++;next[j]=k;break;}else k=next[k];}voidmain(){chars[N],t[N];intnext[N]={0};printf("請輸入主串s:\n");gets(s);printf("請輸入模式串t:\n");gets(t);inti=1,j=1,k=strlen(s)-1,h=strlen(t)-1;while((i<=k)&&(j<=h)){if(s[i]==t[j]){i++;j++;}else{GetNext(t,next);j=next[j];{if(j==0){i++;j++;}}}}if(j>h)printf("匹配的起始下表為:%d\n",i-j+1);elseprintf("匹配失敗\n");}BM算法代碼#include<>#include<>#defineN50intGetDist(chart[],charc){inti,k=0;intm;m=strlen(t)-1;for(i=m;i>0;i--){if(t[i]==c){ k=i;break; }}if((k!=m)&&(k!=0))returnm-k;elsereturnm;}intBM(chars[],chart[],intn,intm){inti,j;i=m;while(i<=n){j=m;while(j>0&&(s[i]==t[j])){j=j-1;i=i-1;}if(j==0){ returni+1; break; }else{ i+=GetDist(t,s[i]); } }return0;}voidmain(){chars[N],t[N];intr,n,m;printf("請輸入主串s:\n");gets(s);printf("請輸入模式串t:\n");gets(t);n=strlen(s)-1;m=strlen(t)-1;r=BM(s,t,n,m)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能制造項目合同補充協(xié)議
- 2025年度混凝土工程防水材料供應與施工合同
- 2025年度城市綜合體建設(shè)項目委托管理合同
- 2025年度公共資源交易合同變更與監(jiān)督管理協(xié)議
- 2025年度合伙人會議決議執(zhí)行與業(yè)績評估合同
- 2025年度國際貿(mào)易貨物檢驗及包裝合同
- 2025年度室內(nèi)空氣凈化工程合同終止及轉(zhuǎn)讓協(xié)議
- 2025年度建筑工程消防監(jiān)控系統(tǒng)質(zhì)量保證合同
- 2025年度公共設(shè)施門窗安裝及售后服務合同
- 2025年健身房私教職業(yè)發(fā)展合同
- 日語專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語課外積累:Hello,China《你好中國》1-20詞塊摘錄課件
- 化學選修4《化學反應原理》(人教版)全部完整PP課件
- 茶文化與茶健康教學課件
- 降水預報思路和方法
- 虛位移原理PPT
- QE工程師簡歷
- 輔音和輔音字母組合發(fā)音規(guī)則
- 2021年酒店餐飲傳菜員崗位職責與獎罰制度
評論
0/150
提交評論