itgle.com
更多“[问题1]中伪代码的时间复杂度为 (7) (用0符号表示)。 ”相关问题
  • 第1题:

    阅读下列说明和C代码,回答问题,将解答填入答题纸的对应栏内。
    【说明】
    计算一个整数数组a的最长递增子序列长度的方法描述如下:
    假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长度为 ;其中b[i]满足最优子结构,可递归定义为:

    【C代码】
    下面是算法的C语言实现。
    (1)常量和变量说明
    a:长度为n的整数数组,待求其最长递增子序列
    b:长度为n的数组,b[i]记录以a[i](0≤ilen:最长递增子序列的长度
    i, j:循环变量
    temp:临时变量
    (2)C程序

    #include int maxL(int*b, int n) {int i, temp=0;for(i=0; itemp) temp=b[i]; } return temp;}int main() { int n,a[100], b[100], i, j, len; scanf("%d", &n); for(i=0;i
    【问题1】(8分)
    根据说明和C代码,填充C代码中的空(1)~(4)。
    【问题2】(4分)
    根据说明和C代码,算法采用了 (5) 设计策略,时间复杂度为 (6) (用O符号表示)。
    【问题3】(5分)
    已知数组a={3,10,5,15,6,8},据说明和C代码,给出数组b的元素值。


    答案:
    解析:
    【问题1】
    (1)b[0]=1
    (2)j(3)a[j]<=a[i]
    (4)b[i]=len+1
    【问题2】(4分)
    (5)动态规划法
    (6)O(n2)
    【问题3】(5分)
    B={1,2,2,3,3,4}

  • 第2题:

    0/1背包问题的时间复杂度为O(n2^n)


  • 第3题:

    分析下面代码段中各行的执行次数,并用大O表示算法的时间复杂度。 x=0; y=0; for(k=1; k<=n; k++) x++; for(i=1; i<=n; i++) for(j=1; j<=n; j++) y++;


    4

  • 第4题:

    分析下面代码段中各行的执行次数,用大O表示算法的时间复杂度。说明:方次可用符号^表示,如100的3次方表示为100^3。 y=0; for(i=1; i<=n; i++) for(j=1; j<=n; j++) y++;


    0

  • 第5题:

    分析下面代码段中各行的执行次数,并用大O表示算法的时间复杂度。 y=0; for(i=1; i<=n; i++) for(j=1; j<=n; j++) y++;


    j=0,第 1 次循环:j=1,s=10。第 2 次循环:j=2,s=30。第 3 次循环:j=3,s=60。 第 4 次循环:j=4,s=100。while 条件不再满足。所以,其中循环语句的执行次数为 4。