数据结构期末复习(三)

查找排序练习

1.判断题
  1. 在散列表中,所谓同义词就是被不同散列函数映射到同一地址的两个元素。(F)
  2. 在散列中,函数“插入”和“查找”具有同样的时间复杂度。(T)
    **解析:**都是O(1)
  3. 有n个数存放在一维数组A[1…n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。(F)
    **解析:**平均查找长度是固定的。
  4. 在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。(T)
    举个例子:设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找 并且索引表和块内均采用顺序查找 ,则其平均查找长度为 ( ) 。 (1+2+3+4+5)/5+(1+2+3+4+5+6)/6=6.5
  5. 若二叉搜索树中关键码互不相同,则其中最小元素和最大元素一定是叶子结点。(F)
    解析:这个可以画个二叉树
  6. hash表的平均查找长度与处理冲突的方法无关(F)
  7. 仅基于比较的算法能得到的最好的“最坏时间复杂度”是O(NlogN)。(T)
    传送门
  8. 对N个记录进行归并排序,归并趟数的数量级是O(NlogN)。(F)
    **解析:**对于N个元素进行k-路归并排序时,排序的趟数m满足km=N,所以m=[log2n]。
    传送门
  9. 对N个记录进行简单选择排序,比较次数和移动次数分别为O(N^​2 )和O(N)。(T)
  10. 对N个记录进行快速排序,在最坏的情况下,其时间复杂度是O(NlogN)。(F)
  11. 希尔排序是稳定的算法。(F)
    **解析:**插入排序、冒泡排序、桶排序、归并排序和基数排序算法是稳定的。
2.选择题
  1. 从一个具有N个结点的单链表中查找其值等于X的结点时,在查找成功的情况下,需平均比较多少个结点? ( D )
    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。

  2. 将序列{ 2, 12, 16, 88, 5, 10, 34 }排序。若前2趟排序的结果如下:
    第1趟排序后:2, 12, 16, 10, 5, 34, 88
    第2趟排序后:2, 5, 10, 12, 16, 34, 88
    则可能的排序算法是:(B)
    A.冒泡排序 B.快速排序 C.归并排序 D.插入排序

  3. 对于只在表的首、尾进行插入操作的线性表,宜采用的存储结构为 (C)
    A) 顺序表 B) 用头指针表示的单循环链表
    C) 用尾指针表示的单循环链表 D) 单链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值