算法分析与设计-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); }
运行效果:
相关文章推荐
- 数据结构与算法学习之路:LIS——最长递增序列的动态规划算法和二分思想算法
- 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
- 最长上升子序列(LIS)算法分析(做…
- 最长递增子序列 O(NlogN)算法
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- 【算法】最长递增子序列的长度
- 最长递增子序列 的二分算法
- 最长单调递增子序列O(NlogN)算法
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- uva10534(最长递增子序列的算法变形 复杂度较低)
- 最长递增子序列(LIS)的O(NlogN)打印算法
- 算法之最长递增子序列,最长公共子序列
- 找工作知识储备---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 算法面试题 之 最长递增子序列 LIS
- 最长递增子序列 O(NlogN)算法
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- 最长递增子序列(算法)