niusouti.com

根据以上C代码,函数heapMaximum,heapExtractMax和maxHeaplnsert的时间复杂度的紧致上界分别为(6)、(7)和(8)(用0符号表示)。

题目

根据以上C代码,函数heapMaximum,heapExtractMax和maxHeaplnsert的时间复杂度的紧致上界分别为(6)、(7)和(8)(用0符号表示)。


相似考题

2.试题四(共15分)阅读下列说明和C代码,回答问题1至问题 3,将解答写在答题纸的对应栏内。【说明】堆数据结构定义如下:在一个堆中,若堆顶元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小顶堆。堆常用完全二叉树表示,图4-1 是一个大顶堆的例子。堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶堆,最小优先队列采用小顶堆。以下考虑最大优先队列。假设现已建好大顶堆A,且已经实现了调整堆的函数heapify(A, n, index)。下面将C代码中需要完善的三个函数说明如下:(1)heapMaximum(A):返回大顶堆A中的最大元素。(2)heapExtractMax(A):去掉并返回大顶堆 A的最大元素,将最后一个元素“提前”到堆顶位置,并将剩余元素调整成大顶堆。(3)maxHeapInsert(A, key):把元素key插入到大顶堆 A的最后位置,再将 A调整成大顶堆。优先队列采用顺序存储方式,其存储结构定义如下:define PARENT(i) i/2typedef struct array{int *int_array; //优先队列的存储空间首地址int array_size; //优先队列的长度int capacity; //优先队列存储空间的容量} ARRAY;【C代码】(1)函数heapMaximumint heapMaximum(ARRAY *A){ return (1) ; }(2)函数heapExtractMaxint heapExtractMax(ARRAY *A){int max;max = A->int_array[0];(2) ;A->array_size --;heapify(A,A->array_size,0); //将剩余元素调整成大顶堆return max;}(3)函数maxHeapInsertint maxHeapInsert(ARRAY *A,int key){int i,*p;if (A->array_size == A->capacity) { //存储空间的容量不够时扩充空间p = (int*)realloc(A->int_array, A->capacity *2 * sizeof(int));if (!p) return -1;A->int_array = p;A->capacity = 2 * A->capacity;}A->array_size ++;i = (3) ;while (i > 0 && (4) ){A->int_array[i] = A->int_array[PARENT(i)];i = PARENT(i);}(5) ;return 0;}【问题 1】(10分)根据以上说明和C代码,填充C代码中的空(1)~(5)。【问题 2】(3分)根据以上C代码,函数heapMaximum、heapExtractMax和 maxHeapInsert的时间复杂度的紧致上界分别为 (6) 、 (7) 和 (8) (用O 符号表示)。【问题 3】(2分)若将元素10插入到堆A =〈15, 13, 9, 5, 12, 8, 7, 4, 0, 6, 2, 1〉中,调用 maxHeapInsert函数进行操作,则新插入的元素在堆A中第 (9) 个位置(从 1 开始)。

更多“根据以上C代码,函数heapMaximum,heapExtractMax和maxHeaplnsert的时间复杂度的紧致上界分别为(6) ”相关问题
  • 第1题:

    阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
    【说明】
    ????在一块电路板的上下两端分别有n个接线柱。根据电路设计,用(i,π(i))表示将上端接线柱i与下端接线柱π(i)相连,称其为该电路板上的第i条连线。如图4-1所示的π(i)排列为{8,7,4,2,5,1,9,3,10,6}。对于任何1≤iπ(j)。





    【问题1】(6分)
    根据以上说明和C代码,填充C代码中的空(1)~(3)。
    【问题2】(6分) ???
    ????据题干说明和以上C代码,算法采用了??(4) ?算法设计策略。??????
    函数maxNum和constructSet的时间复杂度分别为??(5) ??和???(6) ?(用O表示)。?
    【问题3】(3分) ???
    ????若连接排列为{8,7,4,2,5,1,9,3,10,6},即如图4-1所示,则最大不相交连接数为???(7) ??,包含的连线为??(8) ??(用(i,π(i))的形式给出)。


    答案:
    解析:
    【问题1】(6分)
    (1)size[i][j]=1; (2)size[i][j]=size[i-1][j]; (3)net[m++]=i;
    【问题2】(6分)
    (4)动态规划算法;(5)O(n2);(6)O(n)
    【问题3】(3分)
    若连接排列为{8,7,4,2,5,1,9,3,10,6},即如图4-1所示,则最大不相交连接数为 (7) ,包含的连线为 (8) (用(i,π(i))的形式给出)。
    (7) 4
    (8)(9,π(9),(7,π(7)),(5,π(5)),(3,π(3))

  • 第2题:

    对于时间复杂度的估计,上界的阶越低,评估就越精确,结果就越有价值。


    执行算法所需要的基本运算次数

  • 第3题:

    分析下列程序的上界O和下界W。 p = 0.0 for i = n down to 0 do power = 1 for j= 1 to i do power = power *x p = p + a[i] * power return p 该程序时间复杂度的上界是O(____)、下界是W(_____)。


    n^2;n

  • 第4题:

    以下的描述中正确的是:

    A.一段程序的环复杂度必须控制在10以内

    B.环复杂度指标真实再现了循环结构和判定结构对程序结构复杂性造成的影响

    C.一段程序的环复杂度大小等于该程序代码中判定节点的个数加1

    D.可通过将程序中的重复代码改为函数调用来降低代码所在函数的环复杂度


    C ) java.io 包是 JAVA 语言的输入输出类库

  • 第5题:

    自己用C语言代码实现函数strcpy和strlen,要求: 自己用代码实现的函数strcpy和strlen与C语言提供的函数输入输出一致。 利用main函数调用实现的函数。 代码格式规范。


    正确