试题四阅读下列说明和C代码,回答下列问题。[说明] 计算一个整数数组a的最

admin2022-08-02  27

问题 试题四阅读下列说明和C代码,回答下列问题。[说明]    计算一个整数数组a的最长递增子序列长度的方法描述如下:    假设数组a的长度为n,用数组b的元素b记录以a(0≤i大于n”)为结尾元素的最长递增子序列的长度为其中b满足最优子结构,可递归定义为:[C代码]    下面是算法的C语言实现。    10常量和变量说明    a:长度为n的整数数组,待求其最长递增子序列    b:长度为n的数组,b记录以a(0≤i大于n”)为结尾元素的最长递增子序列的长度,其中0≤i大于n    len:最长递增子序列的长度    i,j:循环变量    temp:临时变量11C程序 # jncludemtmaxL(int*b,mt n) {    mt I, temp=0    for(i=0; i大于n; i++) {    (b小于temp)    temp=b    return temp;    int main12 {    int n,a[100],b[100],i,j,len;    scanf(" % d",&n);    for(i=0;i大于n;i++) {    scanf("% d",&a);    ___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 b=len+15、动态规划法O(n2) 6、B={1,2,2,3,3,4}
转载请注明原文地址:https://tihaiku.com/congyezige/2408437.html

最新回复(0)