亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

動態規劃之最長公共子序列

2019-11-06 07:45:41
字體:
來源:轉載
供稿:網友

目錄

最長公共子序列簡介舉例說明并分析代碼塊測試結果

最長公共子序列簡介

一個給定序列的子序列是在該序列中刪去若干元素后得到的序列,確切的說,若給定序列X={x0,x1…,xm-1}, 則另一序列Z={z0,z1,…,zk-1},X的子序列是指存在一個嚴格的下標序列{i0,i1…,ik-1},使得對于所有的j=0,1,…,k-1有Zj=Xij。例如序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相應的遞增下標序列維{1,2,4,6}。

最長公共子序列問題如何分解成子問題,設A=“a0,a1,…,am-1”,B=“b0,b1,…,bm-1”,并Z=“z0,z1,…,zk-1”為它們的最長公共子序列。求解最長公共子序列長度。


舉例說明并分析

窮舉搜索法是最容易想到的方法,對X的所有子序列,檢查它是否也是Y的子序列,從而確定它是否為X和Y的公共子序列,并且在檢查過程中記錄最長的公共子序列,X的所有子序列都檢查后即可求出X和Y的最長公共子序列,x的每個子序列相應與下標集{0,1,2,……,m-1}的一個子集,因此共有2的m次方個不同子序列,從而窮舉法需要指數時間。 事實上,最長公共子序列問題具有最優子結構性質。

(1) 如果am-1=bn-1,則zk-1=am-1=bn-1,且“z0,z1,…,zk-2”是“a0,a1,…,am-2”和“b0,b1,…,bn-2”的一個最長公共子序列;

(2) 如果am-1!=bn-1,則若zk-1!=am-1,蘊涵“z0,z1,…,zk-1”是“a0,a1,…,am-2”和“b0,b1,…,bn-1”的一個最長公共子序列;

(3) 如果am-1!=bn-1,則若zk-1!=bn-1,蘊涵“z0,z1,…,zk-1”是“a0,a1,…,am-1”和“b0,b1,…,bn-2”的一個最長公共子序列。

這樣,在找A和B的公共子序列時,如有am-1=bn-1,則進一步解決一個子問題,找“a0,a1,…,am-2”和“b0,b1,…,bm-2”的一個最長公共子序列;如果am-1!=bn-1,則要解決兩個子問題,找出“a0,a1,…,am-2”和“b0,b1,…,bn-1”的一個最長公共子序列和找出“a0,a1,…,am-1”和“b0,b1,…,bn-2”的一個最長公共子序列,再取兩者中較長者作為A和B的最長公共子序列。

這里寫圖片描述


首先建立子問題最優值的遞歸關系。用c[i][j]記錄序列Xi和Yj的最長公共子序列的長度,b[i][j]記錄c[i][j]的值是由哪一個子問題的解得到的。 動態規劃是自底向上進行遞歸的 那么在計算c[i][j]之前,c[i-1][j-1]和c[i-1][j]以及c[i][j-1]都應該知道

這里寫圖片描述


代碼塊

#include <stdio.h>#include<stdlib.h>#include <string.h>#define MAXLEN 100void LCSLength(char *x, char *y, int m, int n, int c[][MAXLEN], int b[][MAXLEN]){ int i, j; for (i = 0; i <= m; i++) c[i][0] = 0; //單個序列的最長公共子序列為0 for (j = 1; j <= n; j++) c[0][j] = 0; //單個序列的最長公共子序列為0 for (i = 1; i <= m; i++) { for (j = 1; j <= n; j++) { if (x[i-1] == y[j-1])//因為x序列和y序列的坐標都是從0開始的,所有最后一個下標為i-1,j-1; { c[i][j] = c[i - 1][j - 1] + 1; b[i][j] = 1; } else if (c[i - 1][j] >= c[i][j - 1]) { c[i][j] = c[i - 1][j]; //滿足m-1!=n-1且k-1!=m-1情況從X{0,1,2...,m-2}和Y{0,1,2..,n-1}開始尋找 b[i][j] = 2; } else { c[i][j] = c[i][j - 1]; //滿足m-1!=n-1且k-1!=n-1情況從X{0,1,2...,m-1}和Y{0,1,2..,n-2}開始尋找 b[i][j] = 3; } } }}void PRintLCS(int b[][MAXLEN], char *x, int i, int j){ if (i == 0 || j == 0) //遞歸到兩個數組中任意一個的下標為0時結束 return; if (b[i][j] == 1) { PrintLCS(b, x, i - 1, j - 1); printf("%c ", x[i - 1]); } else if (b[i][j] == 2) PrintLCS(b, x, i - 1, j); else PrintLCS(b, x, i, j - 1);}int main(int argc, char **argv){ char x[MAXLEN] ; char y[MAXLEN] ; printf("請輸入較長序列的數據:/n"); scanf("%s", x); getchar(); printf("請輸入較短序列的數據:/n"); scanf("%s", y); int b[MAXLEN][MAXLEN]; int c[MAXLEN][MAXLEN]; int m, n; m = strlen(x); n = strlen(y); LCSLength(x, y, m, n, c, b); printf("最長公共子序列是:/n"); PrintLCS(b, x, m, n);//x數組必須是序列較長的數組 printf("/n長度是%d", c[m][n]); system("pause"); return 0;}

測試結果

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一级做a爰片久久毛片美女图片| 懂色aⅴ精品一区二区三区蜜月| 日韩精品极品毛片系列视频| 欧美午夜电影在线| 日韩在线视频网站| 福利一区视频在线观看| 欧美成人免费网| 欧美成人一区二区三区电影| 久久久国产一区二区| 欧美一级黑人aaaaaaa做受| 日韩一二三在线视频播| 国产成人精品免高潮费视频| 亚洲欧美日韩国产中文专区| 亚洲国产精品999| 国产拍精品一二三| 日韩女优人人人人射在线视频| 欧美黄色片在线观看| 国产成人精品av| 狠狠久久亚洲欧美专区| 亚洲自拍偷拍视频| 国产一区二区av| 欧美性受xxx| 97在线观看视频国产| 国产成人精品久久二区二区| 精品久久久久久久久国产字幕| 国产成人精品一区二区三区| 97超级碰碰人国产在线观看| 精品国产一区二区三区在线观看| 欧美日韩国产一区中文午夜| 欧美一区二区三区免费观看| 色噜噜狠狠狠综合曰曰曰| 亚洲国产高清自拍| 亚洲色图15p| 国产亚洲欧洲高清一区| 久久精品青青大伊人av| 国语自产偷拍精品视频偷| 国产综合在线看| 欧美尤物巨大精品爽| 亚洲国产精品成人精品| 在线视频欧美日韩| 最近2019中文字幕第三页视频| 美女国内精品自产拍在线播放| 国产精品视频在线观看| 岛国视频午夜一区免费在线观看| 国产日韩中文字幕| 中文字幕精品www乱入免费视频| 欧美大全免费观看电视剧大泉洋| 狠狠躁夜夜躁人人躁婷婷91| 综合国产在线观看| 国产精品普通话| 日韩69视频在线观看| 亚洲国产精品小视频| 欧美精品久久久久a| 欧美亚洲成人xxx| 国产91精品高潮白浆喷水| 日韩av色综合| 亚洲a中文字幕| 91精品视频播放| 亚洲视频视频在线| 亚洲一区二区三区777| 国产精品久久久久久久av大片| 日韩中文字幕视频在线| 国产精品狠色婷| 97色在线播放视频| 亚洲欧洲国产伦综合| 久久久久久久久91| 亚洲xxxxx| 深夜福利亚洲导航| 91精品国产91久久久久久久久| 日韩视频精品在线| 亚洲区免费影片| 国产精品亚洲激情| 欧美天天综合色影久久精品| 日韩av在线一区| 欧美激情久久久| 国产精品青青在线观看爽香蕉| 久久九九精品99国产精品| 国产有码一区二区| 欧美大尺度激情区在线播放| 色噜噜狠狠狠综合曰曰曰| 91国自产精品中文字幕亚洲| 亚洲第一福利网站| 亚洲字幕在线观看| 欧美大胆在线视频| 国产精品一区二区久久| 国产精品男人的天堂| 最近2019年日本中文免费字幕| 色偷偷噜噜噜亚洲男人| 91亚洲午夜在线| 91深夜福利视频| 亚洲区在线播放| 欧美中文在线观看国产| 国产精品久久久久aaaa九色| 亚洲成人网在线观看| 国产成人av在线播放| 久久久精品国产| 国产xxx69麻豆国语对白| 欧美性生交大片免网| 亚洲精品黄网在线观看| 精品久久久久久久久久久久久| 97精品国产91久久久久久| 亚洲国产小视频在线观看| 91麻豆国产语对白在线观看| 欧美另类极品videosbestfree| 精品香蕉一区二区三区| 欧美日本中文字幕| 欧美孕妇与黑人孕交| 欧美在线欧美在线| 日韩美女视频免费在线观看| 色婷婷综合成人av| 久久久中文字幕| 亚洲人永久免费| 国产精品福利久久久| 亚洲成人精品视频在线观看| 成人国产精品一区二区| 亚洲欧美日韩视频一区| 久久久久久成人精品| 欧美精品18videos性欧美| 日韩高清中文字幕| 国产91在线播放九色快色| 亚洲综合最新在线| 精品视频中文字幕| 久久综合伊人77777蜜臀| 日韩美女写真福利在线观看| 日韩欧美亚洲综合| 久久久亚洲成人| 国产精品热视频| 欧美日韩日本国产| 这里只有精品视频在线| 97久久精品人人澡人人爽缅北| 欧美激情一二三| 久久久电影免费观看完整版| 啪一啪鲁一鲁2019在线视频| 成人免费大片黄在线播放| 国产色综合天天综合网| 日本免费一区二区三区视频观看| 国产精品视频区| 久久综合久久88| 成人欧美一区二区三区在线| 日韩在线视频网| 久久免费少妇高潮久久精品99| 亚洲欧美一区二区精品久久久| 久久99久久99精品免观看粉嫩| 2019最新中文字幕| 久久久久久久久亚洲| 亚洲精品国精品久久99热| 亚洲美女精品成人在线视频| 欧美日韩美女在线| 欧美激情精品久久久久久变态| 最近中文字幕mv在线一区二区三区四区| 国产精品中文字幕在线| 欧美成人国产va精品日本一级| 国产精品爽爽爽爽爽爽在线观看| 久久免费视频这里只有精品| 亚洲一区二区三区久久| 国产精品揄拍500视频| 国产在线观看91精品一区| 久久久亚洲国产| 国产日韩视频在线观看| 亚洲精品一区二区在线| 日韩av片永久免费网站| 精品香蕉在线观看视频一| 久久久久久久久国产精品| 2019中文字幕在线观看|