一.实验目的:
用贪心算法编写最大子段和问题,要求输入两个字符数组,求出最长公共子序列,输出长度与公共序列。
二.实验代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int changdu(charx[],char y[],int n,int m,int a[][15],int b[][15])//x[]代表一个序列,y[]代表另一个序列 ,a[][]代表最大公共子段和大小,b[][]代表路径
{
int i,j;
for(i=0;i<=n;i++){//初始化第0行
a[0][i]=0;b[0][i]=0; }
for(j=0;j<=m;j++){//初始化第0列
a[j][0]=0;b[j][0]=0;}
for(i=1;i<=m;i++) //从第一行开始计算a数组和b数组中的每一个值
for(j=1;j<=n;j++)
{
if(x[j]==y[i]){//如果两个字符相同,a等于左上角值加1
a[i][j]=a[i-1][j-1]+1;
b[i][j]=2;//用1,2,3来表示b数组中路径的来源方向
}
//如