阅读下列说明和C代码,回答下列问题。[说明]计算一个整数数组a的最长递增子序列长度的方法描述如下:假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n”)为结尾元素的最长递增子序列的长度为 其中b[i]满足最优子结构,可递归定义为: [C代码]下面是算法的C语言实现。10常量和变量说明a:长度为n的整数数组,待求其最长递增子序列b:长度为n的数组,b[i]记录以a[i](0≤i<n”)为结尾元素的最长递增子序列的长度,其中0≤i<nlen:最长递增子序列的长度i,j:循环变量temp:临时变量11C程序#jnclude<stdio,h>mtmaxL(int*b,mtn){mtI,temp=0for(i=0;i<n;i++){(b[i]>temp)temp=b[i]returntemp;intmain12{intn,a[100],b[100],i,j,len;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);___1___:for(i=1;i<n;i++){for(j=0,len=0;___2___;j++){if(___3___&&len<b[j])Ien=b[j]___4___;}Printf("len:%d\n",maxL(b,n))Primtf("\n")}1~4、根据说明和C代码,填充C代码中的空______~______。5、根据说明和C代码,算法采用了______设计策略,时间复杂度为______(用O符号表示)6、已知数组a={3,10,5,15,6,8},据说明和C代码,给出数组b的元素值。
本题考查最长递增序列问题,是一种动态规划法,也考查时间复杂度的计算。1~4、b[0]=1 j<=i a[j]<=a[i] b[i]=len+15、动态规划法 O(n2) 6、B={1,2,2,3,3,4}