美文网首页
数据结构错题收录(二)

数据结构错题收录(二)

作者: 程序员丶星霖 | 来源:发表于2022-11-16 10:10 被阅读0次

1、下列函数的时间复杂度是____。

int func(int n)
{
    int i=0,sum=0;
    while(sum<n) sum+=++i;
    return i;
}
  • A:O(\log(n))
  • B:O(n^{1 \over 2})
  • C:O(n)
  • D:O(n\log(n))
解析

“sum+=++i;”相当于“++i; sum=sum+i”。进行到第k趟循环,sum=(1+k)k/2。
(1+k)
k/2<n,显然需要进行O(n^{1 \over 2})趟循环,因此这也是该函数的时间复杂度。

答案:B

2、从一个具有n个结点的单链表中检索其值等于x的结点时,在检索成功的情况下,需平均比较的结点个数是____。

  • A:n/2
  • B:n
  • C:(n+1)/2
  • D:(n-1)/2
解析

由于单链表只能进行单向顺序查找,以从第一个节点开始查找为例,查找第m个节点需要比较的节点数f(m)=m,查找成功的最好情况是第一次就查找成功,只用比较1个节点,最坏情况则是最后才查找成功,需要比较n个节点。
所以一共有n种情况,平均下来需要比较的节点为(1+2+3+...+(n-1)+n)/n = (n+1)/2

答案:C

3、当n足够大时,下述函数中渐近时间最小的是____。

  • A:T(n)=n\log n-1000\log n
  • B:T(n)=n\log 3-1000\log n
  • C:T(n)=n^2-1000\log n
  • D:T(n)=2n\log n-1000\log n
解析

ABCD四个选项时间复杂度依次为O(n\log_2 n)、O(n)、O(n^2)、O(n\log_2 n)。所以n足够大时,时间复杂度最小的是O(n),选B。

答案:B

4、倒排文件包含有若干个倒排表,倒排表的内容是____。

  • A:一个关键字值和该关键字的记录地址
  • B:一个属性值和该属性的一个记录地址
  • C:一个属性值和该属性的全部记录地址
  • D:多个关键字和它们相对应的某个记录的地址
解析

有倒排索引的文件我们称为倒排索引文件,简称倒排文件。倒排索引,也常被称为反向索引,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。

答案:C

5、下述编码中不是前缀码的是____。

  • A:{0,10,110,111}
  • B:{0,1,00,11}
  • C:{1,01,000,001}
  • D:{00,01,10,11}
解析

前缀编码是指对字符集进行编码时,要求字符集中任一字符的编码都不是其他字符的编码的前缀。选项B中0和00不符合前缀码要求。

答案:B

6、下面程序段的时间复杂度是_____。

i=s=0;
while(s<n)
{
    i++;s+=i;
}
  • A:O(\log(n))
  • B:O(\sqrt n)
  • C:O(n)
  • D:O(n^2)
解析

第一次执行完s+=i s=1
第二次s = 3 =1+2
第三次s = 6 =1+2+3
第四次s=10=1+2+3+4
第k次 1+2+3+4+...+k={k*(k+1) \over 2}
那么当{k*(k+1) \over 2} >= n 的时候停止,也就是k={\sqrt{8n+1}-1 \over 2}
所以复杂度时\sqrt n

答案:B

7、在有向图中每个顶点的度等于该顶点的____。

  • A:入读
  • B:出度
  • C:入读与出度之和
  • D:入读与出度之差
解析

在有向图中每个顶点的度等于该顶点的入读与出度之和。

答案:C

8、具有n个顶点的无向完全图有____条边。

  • A:n
  • B:n*(n-1)/2
  • C:n*(n+1)/2
  • D:n*n/2
解析

具有n个顶点的无向完全图有n*(n-1)/2条弧

答案:B

9、下列程序段的时间复杂度是____。

count = 0;
for(k=1;k<=n;k*=2)
    for(j=1;j<=n;j++)
        count++;
  • A:O(\log_2 n)
  • B:O(n)
  • C:O(n\log_2 n)
  • D:O(n^2)
解析

内层循环条件j<=n与外层循环的变量无关,各自独立。每执行一次j自增1,每次内层循环都执行n次。外层循环条件k<=n,增量定义为k=2,可知循环次数t满足k=2^t<=n,即t<=\log_2 n。即内层循环的时间复杂度为O(n),外层循环的时间复杂度为O(\log_2 n)。对于嵌入循环,根据乘法规则可知,该程序的时间复杂度T(n)=T_1(n)T_2(n)=O(n)*O(\log_2 n)=O(n\log_2 n)。

答案:C

10、一个算法所需时间由下述递归方程表示,试求出该算法的时间复杂度的级别(或阶)。式中n是问题的规模,为简单起见,设n是2的整数次幂。

T(n) = \begin{cases} 1 &n=1 \\ 2T({n \over 2})+n &n>1 \end{cases}

解析

设n=2^k(k \ge 0),根据题目所给定义有T(2^k)=2T(2^{k-1})+2^k=2^2 T(2^{k-2})+2\times2^k,由此可得一般递推公式T(2^{k})=2^{i}T(2^{k-i})+i\times2^{k},进而得T(2^{k})=2^{k}T(2^{0})+k\times2^{k}=(k+1)2^{k},即T(n)=2^{\log_2 n}+\log_2 {n\times n}=n(\log_2 n + 1),也就是O(n\log_2 n)

学海无涯苦作舟

相关文章

  • 数据结构错题收录(二)

    1、下列函数的时间复杂度是____。 A:O() B:O() C:O(n) D:O() 解析 “sum+=++i;...

  • 数据结构错题收录(四)

    1、已知表头元素为c的单链表在内存中的存储状态如下表所示。现将f存放于1014H处并插入单链表,若f在逻辑上位于a...

  • 数据结构错题收录(五)

    1、若用数组A[0...5]来实现循环队列,且当前rear和front的值分别为1和5,当从队列中删除一个元素,再...

  • 数据结构错题收录(六)

    1、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为()。 A:h B:2h-1 ...

  • 数据结构错题收录(七)

    1、在二叉树中有两个结点m和n,若m是n的祖先,则使用()可以找到从m到n的路径。 A:先序遍历 B:中序遍历 C...

  • 数据结构错题收录(八)

    1、已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的结点个数是()。 A:115 ...

  • 数据结构错题收录(三)

    1、求出下列算法的时间复杂度。 解析 基本语句k=k+10*i宫执行了n-2次,所以T(n)=O(n)。 2、求出...

  • 数据结构错题收录(一)

    1、以下属于逻辑结构的是() A:顺序表 B:哈希表 C:有序表 D:单链表 解析 顺序表、哈希表和单链表是三种不...

  • 数据结构错题收录(十三)

    1、已知带权连通无向图G=(V,E),其中V={,,,,,,},E={(,)10,(,)2,(,)2,(,)11,...

  • 数据结构错题收录(十)

    1、下列关于广度优先算法的说法中,正确的是()。 Ⅰ.当各边的权值相等时,广度优先算法可以解决单源最短路径问题 Ⅱ...

网友评论

      本文标题:数据结构错题收录(二)

      本文链接:https://www.haomeiwen.com/subject/nadyxdtx.html