⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 算法分析与设计的最长子序列问题
💻 CPP
字号:
#include<stdio.h>

int sublength(int a[100]);
int binary(int i,int k);
void main()
{
	int i,k=0,n,c;
	int sequence1[100],sequence2[100][100];
	do{
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&sequence1[i]);
		for(i=0;i<n;i++)
			sequence2[k][i]=sequence1[i];
		k++;
	}while(n!=0);
	for(i=0;i<=k;i++)
	{
		c=sublength(sequence2[i]);
		printf("%d\n",c);
	}
}

int sublength(int a[100])
{
	int i,k;
	int b[100];
	b[1]=a[0];
	for(i=1,k=1;i<100;i++)
	{
		if(a[i]>=b[k])
			b[++k]=a[i];
		else
			b[binary(i,k)]=a[i];
	}
	return k;
}

int binary(int i,int k)
{
	int h,j;
	if(a[i]<b[j])
		return 1;
	for(h=1,j=k;h!=j-1;)
	{
		if(b[k=(h+j)/2]<a[i])
			h=k;
		else
			j=k;
	}
	return j;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -