#include <iostream>
//求数组最大递增数列。
using namespace std;
void Grial(int a[],int b[],int &n)
{
int m = n;
int flogs[n];
int len=1;
int k = 0;
int save[n];
for(int i=0;i<n;i++)
{
flogs[i]=1;
k=0;
for(int j=0;j<i;j++)
{
if(a[j]<a[i] && flogs[j]+1>flogs[i])
{
flogs[i]=flogs[j]+1;
save[k++]=a[j];
}
}
save[k++]=a[i];
if(len<flogs[i])
{
for(int m=0;m<k;m++)
{
b[m]=save[m];
}
len = flogs[i];
}
}
n=k;
}
int main()
{
int n = 5;
int a[]={1,19,8,11,9};
int b[n];
Grial(a,b,n);
for(int i=0;i<n;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
}
原文地址:http://blog.csdn.net/liuhuiyan_2014/article/details/45823157