数据结构练习题及答案

一、判断题


1、所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。(2分)



解:错误。将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)


2、NNN个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)O(logN)O(logN)(3分)


解: 错误。数组二分查找的平均复杂度是O(logN)没有错,一看到这个就跳坑了= =然后知道陷阱来了!按顺序存放在【单项链表】中。二分查找是不可以用链表存储的。为什么呢,请看下面解释:

<span style="font-size:14px;">   这是由链表的特性决定的。链表是很典型的顺序存取结构,
   数据在链表中的位置只能通过从头到尾的顺序检索得到,即使是有序的,要操作其中的某个数据也必须从头开始。
   这和数组有本质的不同。数组中的元素是通过下标来确定的,只要你知道了下标,就可以直接存储整个元素,
   比如a[5],是直接的。链表没有这个,所以,折半查找只能在数组上进行。</span>


二、选择题
  1. 给定N×NN\times NN×N的二维数组A,则在不改变数组的前提下,查找最大元素的时间复杂度是:(4分)
    1.  O(N2)O(N^2)O(N2)
    2.  O(NlogN)O(NlogN)
    3.  O(N)O(N)
    4.  O(N2logN)O(N^2 logN)

解:选择第四个。

  1. 给定程序时间复杂度的递推公式:T(1)=1T(1)=1T(1)=1T(N)=2T(N/2)+NT(N)=2T(N/2)+NT(N)=2T(N/2)+N。则程序时间复杂度是:(4分)
    1. O(logN)O(logN)
    2. O(N)O(N)O(N)
    3.  O(NlogN)O(NlogN)
    4. O(N2)O(N^2)O(N2)
解:选择第三个。
    举个栗子:
      T(8)->T(4)+T(4)+8->T(2)+T(2)+T(2)+T(2) +8+8->T(1)*8+8+8+8 = 8*4
       递归深度为logn每层执行n次


  • 11
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值