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

来源:互联网 发布:商家淘宝客推广 编辑:程序博客网 时间:2024/06/05 08:54

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

#include<stdio.h>#define NUM 100int 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);}

运行效果:


0 0
原创粉丝点击