2.25专项测试复盘

  • 采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是()
    A. 递归次数与初始数据的排列次序无关
    B. 每次划分后,先处理较长的分区可以减少递归次数
    C. 每次划分后,先处理较短的分区可以减少递归次数
    D. 递归次数与每次划分后得到的分区处理顺序无关

    解析:A递归次数和数据排列有关:若有序,这次数为O(N)。理论上最少的次数为O(logN)。BC 每次划分应该先处理较短的分许,只是减少递归占用的内存空间,并不能减少次数。
    答案:D

  • int main(){fork()||fork();}共创建几个进程:_____
    A. 1
    B. 2
    C. 3
    D. 4

    解析:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。
    子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。
    在main这个主进程中,首先执行 fork() || fork(), 左边的fork()返回一个非零值,由于子进程会复制父进程,而且子进程会根据其返回值继续执行,就是说,在子进程中, fork() ||fork()这条语句左边表达式的返回值是0, 所以||右边的表达式要执行,这时在子进程中又创建了一个进程,
    即main进程->子进程->子进程,一共创建了3个进程。

    答案:C

  • 下列叙述中正确的是
    A. 程序执行的效率与数据的存储结构密切相关
    B. 程序执行的效率只取决于程序的控制结构
    C. 程序执行的效率只取决于所处处理的数据量
    D. 以上说法均错误

    解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
    答案:A

  • 下面是有关算法时间复杂度的论述,其中正确的说法是( )
    A. 算法的时间复杂度与数据规模无关
    B. 算法的时间复杂度与算法的语句频度无关
    C. 算法的时间复杂度与算法采用的解决问题的策略无关
    D. 算法的时间复杂度与选择的程序设计语言无关

    解析:A 除O(1)外,时间复杂度随问题的规模增大而增大;
    B 显然语句频度越高,高到多出一个量级,复杂度就变了;
    C 不同的策略,复杂度有可能是不同的;

    答案:D

  • 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立

  • 抽象数据类型与计算机内部表示和实现无关

  • 若使用枚举法求解TSP算法,则时间复杂度是((n-1)!

  • 假设包含t个非零元素的稀疏矩阵A含有m行n列,并采用三元组顺序表压缩存储,其快速转置算法的时间复杂度为( )
    A. O(m+t)
    B. O(n+t)
    C. O(m+n)
    D. O(m*n)

    解析:快速转置:
    1.初始化所有列的非零元素的个数统计为0(n)
    2.统计每一列的非零元素个数(t)
    3.接着求每一列第一个非零元素的首位置(n)
    4.最后对每一个非零个数转置(t)。
    总共时间:2 * (n+t)
    于是,时间复杂度:O(n+t)
    https://blog.csdn.net/poklau/article/details/23710099

    答案:B

  • 分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,但他们求解目标不同,搜索方式也不同。

  • 算法的5个基本特征:确定性、有穷性、输入、输出、可行性。

  • 当一棵具有n个叶结点的二叉树的WPL值为最小时,称其树为哈夫曼树,且其二叉树的形状不是唯一的。

  • 关于 0 - 1 背包问题以下描述正确的是( )。
    A. 可以使用贪心算法找到最优解
    B. 能找到多项式时间的有效算法
    C. 使用教材介绍的动态规划方法可求解任意0-1背包问题
    D. 对于同一背包与相同的物品,做背包问题取得的总价值一定大于等于做0-1背包问题

    答案:D

  • 下列叙述中正确的是
    A. 算法的效率只与问题的规模有关,而与数据的存储无关
    B. 算法的时间复杂度是指执行算法所需要的计算工作量
    C. 数据的逻辑结构与存储结构是一一对应的
    D. 算法的时间复杂度与空间复杂度一定相关

    解析:算法的效率与问题的规模和数据的存储结构都有关,A错误。算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结果和存储结构不是一一对应的,C错误。算法的时间复杂度和空间复杂度没有直接的联系,D错误。
    答案:B

  • 快排
    1.在完全无序的情况下效果最好,时间复杂度为O(nlogn)
    2.在有序情况下效果最差,时间复杂度为O(n^2)

  • 2^N个元素中挑选出最大的元素,至少需要做 2 ^N -1次比较

  • 算法的时间复杂度与运行算法时特定的输入有关

  • 若要在O(l)的时间复杂度上实现两个循环链表表头尾相接,则对应两个循环链表各设置一个指针,分别指向各自的尾节点。(尾节点后就是头节点)

原文地址:https://www.cnblogs.com/l999q/p/12361919.html