Loading

算法分析与设计 第三次课外作业

一. 单选题(共7题,70分)

  1. (单选题)
    给定已排好序的 \(n\) 个元素 \(a[0:n-1]\) ,现在要在这 \(n\) 个元素中找出一特定元素\(x\) 。如果采用二分搜索技术,在最坏情况下的时间复杂性为( )。
    A. \(T(n)=O(n^2logn)\)
    B. \(T(n)=\theta(nlogn)\)
    C. \(T(n)=O(n!)\)
    D. \(T(n)=O(logn)\)

    正确答案: D :T(n)=O(logn);
    10分

  2. (单选题)
    利用分治法求解大整数乘法问题时,将两个 \(n\) 位二进制整数 \(X\)\(Y\) 都分为两段,每段 \(n/2\) 位,即:\(X = a2^{n/2} + b\)\(Y = c 2^{n/2} + d\),根据( )可以得到复杂度为 \(O(n^{log3})\)的解。

    A. \(XY = ac \; 2^n + ((a+b)(d-c)+ac-bd) \; 2^{n/2} + bd\)
    B. \(XY = ac \; 2^n + ((a-b)(d-c)+ac+bd) \; 2^{n/2} + bd\)
    C. \(XY = ac \; 2^n + ((a+b)(d+c)+ac-bd) \; 2^{n/2} + bd\)
    D. \(XY = ac \; 2^n + (ad + bc) \; 2^{n/2} + bd\)

    正确答案: B :XY = ac 2n + ((a-b)(d-c)+ac+bd) 2n/2 + bd;
    10分

  3. (单选题)
    Strassen矩阵乘法是利用( )实现的算法。
    A. 分治策略
    B. 动态规划法
    C. 贪心法
    D. 回溯法

    正确答案: A :分治策略 ;
    10分

  4. (单选题)
    在棋盘覆盖问题中,对于 \(2^k \times 2^k\) 的特殊棋盘(有一个特殊方格),所需的L型骨牌的个数是( )。
    A. \((4^k-1)/3\)
    B. \(2^k/3\)
    C. \(4^k\)
    D. \(2^k\)

    正确答案: A : (4^k-1)/3 ;
    10分

  5. (单选题)
    关于合并排序,以下叙述中错误的是( )。
    A. 合并排序算法是渐近最优算法
    B. 从分治策略的机制入手,容易消除算法中的递归
    C. 合并排序算法只针对长度为\(2^n\)的数组有效
    D. 在通常情况下,自然合并排序所需的合并次数较少

    正确答案: C :合并排序算法只针对长度为2^n的数组有效 ;
    10分

  6. (单选题)
    快速排序算法的性能取决于划分的对称性。在以下关于划分基准选择的解释中,最合理的是( )。
    A. 随机选择一个元素作为划分基准
    B. 取子序列的第一个元素作为划分基准
    C. 用中位数方法寻找划分基准
    D. 以上皆可行,但不同方法,算法复杂度上界可能不同

    正确答案: D :以上皆可行,但不同方法,算法复杂度上界可能不同;
    10分

  7. (单选题)
    下列问题中( )不能用分治法求解。
    A. 合并排序
    B. 矩阵乘法
    C. 背包问题
    D. 大整数的乘法

    正确答案: C :背包问题;
    10分

二. 填空题(共2题,20分)

  1. (填空题)
    Strassen矩阵乘法之所以能够提高算法效率,其根本原因在于该算法把2个n阶方阵的乘积转化成_____个n/2阶方阵的乘积。

    正确答案:
    (1) 7

  2. (填空题)
    合并排序算法可递归地描述如下:

    public static void mergeSort(Comparable a[],int left, int right)
    {
        if(left<right){ //至少有2个元素
            int i=(left+right)/2;     //取中点
            mergeSort(a,left,i);
            ___________;
            merge(a,b,left,i,right);  //合并到数组b
            copy(a,b,left,right);     //复制回数组a
        }
    }
    

    正确答案:
    (1)
    mergeSort(a,i+1,right)

三. 判断题(共1题,10分)

  1. (判断题)
    针对已按降序排好序的n个元素,二分搜索算法将n个元素分成个数大致相同的两半,取a[n/2]与x进行比较。若x<a[n/2],则只要在数组a的左半部继续搜索x。
    A. 对
    B. 错

    正确答案: 错
    10分

posted @ 2023-10-26 14:02  qing影  阅读(25)  评论(0编辑  收藏  举报