问题描述:
设A是n个不同正整数构成的序列,求A的一个最长递增子序列。例如序列为1,5,3,8,10,6,4,9;它的最长递增子序列为1,5,8,10;1,5,8,9;...。
以下提供了两个算法求解。
LISdyna:时间复杂度为:n^2
LIS:时间复杂度:n(logn)
代码如下:
#include <iostream>
using namespace std;
int LISdyna(int n , int a[])//----时间复杂度 O(n^2)
{
int i , j , k;
int b[n] , max = 0;