下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
以下為最長(zhǎng)公共子序列問(wèn)題的兩種程序,分別通過(guò)兩種算法實(shí)現(xiàn):方法一:publicclassLcsLength{ publicstaticintlcsLength(char[]x,char[]y,int[][]b) { intm=x.length; intn=y.length; int[][]c=newint[m+1][n+1]; for(inti=0;i<=m;i++)c[i][0]=0; for(inti=0;i<=n;i++)c[0][i]=0; for(inti=1;i<=m;i++) for(intj=1;j<=n;j++) { if(x[i-1]==y[j-1]) { c[i][j]=c[i-1][j-1]+1; b[i][j]=1; } elseif(c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]=2; } else { c[i][j]=c[i][j-1]; b[i][j]=3; } } inti=m;intj=n; lcs(i,j,x,b); returnc[m][n]; } publicstaticvoidlcs(inti,intj,char[]x,int[][]b) { if(i==0||j==0)return; if(b[i][j]==1) { lcs(i-1,j-1,x,b); System.out.print(x[i-1]+","); } elseif(b[i][j]==2)lcs(i-1,j,x,b); elselcs(i,j-1,x,b); } publicstaticvoidmain(Stringargs[]) { char[]x={'a','b','c','b','d','a','b'}; char[]y={'b','d','c','a','b','a'}; int[][]b=newint[x.length+1][y.length+1]; System.out.print("最長(zhǎng)公共子序列:"); intn=lcsLength(x,y,b); System.out.println(); System.out.println("其長(zhǎng)度為:"+n); }}方法二:packagecn.lgh;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.ArrayList;importjava.util.List;/***動(dòng)態(tài)規(guī)劃法解最長(zhǎng)公共子系列。*@author藍(lán)冠恒*/publicclassLCS{ publicstaticList<Character>resultList=newArrayList<Character>(); /** *計(jì)算最優(yōu)值 *@paramx *字符系列數(shù)組 *@paramy *字符系列數(shù)組 *@paramc *存儲(chǔ)x和y最長(zhǎng)公共子系列長(zhǎng)度數(shù)組 *@paramb *記錄c中元素對(duì)應(yīng)子問(wèn)題的解的數(shù)組 */ publicstaticvoidlcsLength(charx[],chary[],int[][]c,int[][]b){ intm=x.length-1; intn=y.length-1; resultList.clear(); for(inti=1;i<=m;i++){ c[i][0]=0; } for(inti=1;i<=n;i++){ c[0][i]=0; } for(inti=1;i<=m;i++){ for(intj=1;j<=n;j++){ if(x[i]==y[j]){ c[i][j]=c[i-1][j-1]+1; b[i][j]=1; }elseif(c[i-1][j]>=c[i][j-1]){ c[i][j]=c[i-1][j]; b[i][j]=2; }else{ c[i][j]=c[i][j-1]; b[i][j]=3; } } } } /** *構(gòu)造最長(zhǎng)公共子系列 *@parami *數(shù)組下標(biāo) *@paramj *數(shù)組下標(biāo) *@paramx *字符系列數(shù)組 *@paramb *記錄c中元素對(duì)應(yīng)子問(wèn)題的解的數(shù)組 */ publicstaticvoidlcs(inti,intj,charx[],int[][]b){ if(i==0||j==0){ return; } if(b[i][j]==1){ lcs(i-1,j-1,x,b); resultList.add(x[i]); }elseif(b[i][j]==2){ lcs(i-1,j,x,b); }else{ lcs(i,j-1,x,b); } } publicstaticvoidmain(Stringarg[]){ Stringinput; char[]x; char[]y; BufferedReaderin=newBufferedReader(newInputStreamReader(System.in)); do{ try{ do{ System.out.println("請(qǐng)輸入第一串字符系列(按數(shù)字鍵1退出系統(tǒng)):"); input=in.readLine().trim(); }while(input.equals("")); if(input.equals("1")){ break; } input="S"+input; x=input.toCharArray(); do{ System.out.println("請(qǐng)輸入第二串字符系列(按數(shù)字鍵1退出系統(tǒng)):"); input=in.readLine().trim(); }while(input.equals("")); if(input.equals("1")){ break; } input="S"+input; y=input.toCharArray(); int[][]b=newint[x.length][y.length]; int[][]c=newint[x.length][y.length]; lcsLength(x,y,c,b);//計(jì)算最優(yōu)值 lcs(x.length-1,y.length-1,x,b);//構(gòu)造最長(zhǎng)公共子系列 intsize=resultList.size(); System.out.print("解得最長(zhǎng)公共子系列為:"); for(i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲采購(gòu)協(xié)議書范本
- 北京市室內(nèi)裝修拆除合同
- 山西省2024八年級(jí)物理上冊(cè)第三章物態(tài)變化第5節(jié)跨學(xué)科實(shí)踐:探索廚房中的物態(tài)變化問(wèn)題課件新版新人教版
- 腎結(jié)石的治療與護(hù)理
- 人教版一年級(jí)數(shù)學(xué)2024版上冊(cè)期末測(cè)評(píng)(提優(yōu)卷一)(含答案)
- 安徽省六安皋城中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期11月期中語(yǔ)文試題(含答案)
- (語(yǔ)文)涪城區(qū)2024-2025學(xué)年七年級(jí)半期教學(xué)質(zhì)量監(jiān)測(cè)試卷
- 全腦開發(fā)相關(guān)項(xiàng)目投資計(jì)劃書范本
- 【初中地理】世界主要?dú)夂蝾愋偷诙n時(shí)課件-2024-2025學(xué)年七年級(jí)地理上學(xué)期(湘教版2024)
- 苯噻草胺相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 2024-2030年中國(guó)肉牛養(yǎng)殖產(chǎn)業(yè)前景預(yù)測(cè)及投資效益分析報(bào)告權(quán)威版
- 湖北省武漢市部分學(xué)校2024-2025學(xué)年高一上學(xué)期11月期中調(diào)研數(shù)學(xué)試題(含答案)
- 2024年同等學(xué)力申碩英語(yǔ)考試真題
- 河北省石家莊市長(zhǎng)安區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期中英語(yǔ)試卷
- 初中數(shù)學(xué)30種模型(幾何知識(shí)點(diǎn))
- 品牌經(jīng)理招聘筆試題及解答(某大型國(guó)企)2025年
- 多能互補(bǔ)規(guī)劃
- 珍愛(ài)生命主題班會(huì)
- 《網(wǎng)絡(luò)數(shù)據(jù)安全管理?xiàng)l例》課件
- GB/T 5270-2024金屬基體上的金屬覆蓋層電沉積和化學(xué)沉積層附著強(qiáng)度試驗(yàn)方法評(píng)述
- 2024春期國(guó)開電大??啤渡鐣?huì)調(diào)查研究與方法》在線形考(形成性考核一至四)試題及答案
評(píng)論
0/150
提交評(píng)論