您的位置:首页 > 其它

算法分析与设计-11-最长递增子序列的动态规划算法

2016-11-13 18:23 344 查看

最长递增子序列的动态规划算法

#include<stdio.h>
#define NUM 100
int a[NUM];
int LIS(int n)
{
int b[NUM]={0};
int i,j;
b[1]=1;
int max=0;
for(i=2;i<=n;i++){
int k=0;
for(j=1;j<i;j++){
if(a[j]<=a[i]&&k<b[j])k=b[j];
b[i]=k+1;
if(max<b[i])max=b[i];
}
}
return max;
}
int main(){
int n,m,lis;
printf("请输入元素个数n:\n");
scanf("%d",&n);
printf("请输入各元素的值:\n");
for(int i=1;i<=n;i++){
scanf("%d",&m);
a[i]=m;
}
printf("输出最大个数:\n");
lis=LIS(n);
printf("%d",lis);
}

运行效果:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐