zoukankan      html  css  js  c++  java
  • 2.22专项测试复盘

    • 关于堆数据结构,下面描述中正确的有()
      A. 可以用堆实现优先队列(priority_queue)
      B. 使用堆可以实现排序算法,复杂度为N × log N
      C. 从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高
      D. 在大顶堆中,第N层中的所有元素比第N+1层中的所有元素都要大
      E. 堆数据结构可以用数组方式存储,存储的是一棵完全二叉树

      解析:小顶堆思路:构建一个容量为n的堆,建堆时间为n,此后每次都弹出堆顶元素(最小元素)再调整,一共弹 K 次,每次调整时间为log(n),所以时间复杂度是 n+Klog(n);
      大顶堆思路:只维护一个容量为 K 的堆,所以建堆的复杂度为 K,此后遍历数组剩下的所有元素(n-K个),每个元素都要和堆顶的元素进行比较,如果比堆顶大,则忽略(说明该元素不是最小K个值,概率比较难算,这里简单当作(n-K)/n),复杂度是1,如果比堆顶小(概率简单视作K/n),则将堆顶替换为该元素并调整堆结构(称之为堆更新),每次更新(堆调整)的复杂度为 log(K),所以最坏时间代价为:K + (n-K) * log(K);
      结合概率平均每个元素要比较的次数为:log(K)
      K/n + 1(n-K)/n,所以总时间复杂度是:K + (n-K) * [log(K)K/n + 1*(n-K)/n];

      答案:ABCE

    • 一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~6]中,采用链地址法解决冲突。若查找每个元素的概率相同,则查找成功的平均查找长度是( )。
      A. 4/3
      B. 1
      C. 3/2
      D. 5/3

      解析:
      0 -- 14 -- 63
      1 -- 22
      2 -- 30
      5 -- 40 -- 5
      平均查找长度 (1 + 2 + 1 + 1 + 1 + 2) / 6 = 4 / 3

      答案:A

    • 用 0 - 9 这 10 个数字组成一个首尾相连的字符串,每个数字可以重复出现多次,并且字符串中任意 2 个数字都相邻出现过。此字符串最小长度是()
      A. 47
      B. 48
      C. 49
      D. 50

      解析:数字0必须与其他9个数字相邻,则0最少出现5次。每个数字的地位均等,根据对称性,50
      答案:D

    • 某二叉树的前序序列和后序序列正好相反,则该二叉树一定是(高度等于其结点数)的二叉树

    • 下面属于构造散列(hash)函数的方法是
      A. 直接定址法
      B. 数字分析法
      C. 乘余取整法
      D. 平方取中法

      答案:ABCD

    • 深度为k的完全二叉树中最少有(2^(k-1))个结点。

    • 单链表中,增加一个头结点的目的是为了 。
      A. 使单链表至少有一个结点
      B. 标识表结点中首结点的位置
      C. 方便运算的实现
      D. 说明单链表是线性表的链式存储

      解析: 头结点的存在,使得空链表与非空链表的处理变得一致,也方便了对链表的开始结点插入或删除操作。
      答案:C

    • 在下述几种树中,()可以表示静态查找表
      A. 次优查找树
      B. 二叉排序树
      C. B-树
      D. 平衡二叉树

      答案:A

    • 若一个栈以向量V...存储,初始栈顶指针top为n+1,则下面x入栈的正确操作是()。
      A. top=top+1; V[top]=x
      B. V[top]=x; top=top+1
      C. top=top-1; V[top]=x
      D. V[top]=x; top=top-1

      答案:C

    • 下述图的遍历算法中正确的说法是( )。
      A. 广度优先遍历算法只适应于无向图
      B. 广度优先遍历算法只适应于有向图
      C. 可能需要多次调用深度优先遍历算法或广度优先遍历算法,方可遍历一个无向图
      D. 只需一次调用深度优先遍历算法或广度优先遍历算法,即可遍历一个无向图

      解析:如果该图不是连通的话,就不止一次
      答案:C

    • 不含任何结点的空树是什么
      A. 是一棵树;
      B. 是一棵二叉树;
      C. 是一棵树也是一棵二叉树;
      D. 既不是树也不是二叉树

      解析:树不能为空,因为树是图的一种,图不能为空,二叉树可以为空,树和二叉树直接没有包含关系。
      答案:B

    • 下列关于m阶的B-树的论述不正确的是
      A. B-树是一种平衡的多路查找树
      B. 树中每个结点至多有m棵子树
      C. 若根结点不是叶子结点,则至少有两棵子树
      D. B-树中的叶子结点可出现在不同层次上

      解析:https://www.sohu.com/a/154640931_478315
      答案:D

    • 在下列表述中,()是错误的
      A. 含有一个或多个空格字符的串称为空串
      B. 对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
      C. 选择排序算法是不稳定的
      D. 平衡二叉树的左右子树的结点数之差的绝对值不超过1

      解析:
      A选项:长度为0 的串为空串,即为“” 。由多个空格字符构成的字符串称为空格串
      B选项:如果权值最小的n-1条边构成了环的话,就不能构成最小生成树
      D选项:平衡二叉树的左右子树高度之差的绝对值不超过1.
      C选项:选择排序包括直接选择排序和堆排序,都是不稳定的算法

      答案:ABD

  • 相关阅读:
    随题而学(二)多维数组转一维数组
    随题而学(一)
    谁能破解“无法定位程序输入点ucrtbase.abort与动态链接库api-ms-win-crt-runtime-l1-1-0.dll上”
    虚拟机8—tools安装失败
    win7介绍
    win xp安装
    Linux正则表达式,grep总结,sed用法
    Linux将用户添加到组的指令
    xxx is not in the sudoers file.This incident will be reported.的解决方法
    69-70连接查询
  • 原文地址:https://www.cnblogs.com/l999q/p/12346932.html
Copyright © 2011-2022 走看看