笔试题(一)

1,若一棵二叉树具有10个度为2的结点,则度为0的结点个数是( 11)。

   答:度为0的结点=度为2的结点+1,即为 n0=n2+1

      n=n0+n1+n2

      n=1+n1+2*n2

       可 以推出 n0=n2+1

2. 在下列排序算法中,哪一个算法的时间复杂度与初始排序无关( D)。

A. 插入排序 B. 起泡排序 C. 快速排序 D. 堆排序

      此题如果选项换成直接选择排序也是对的,堆排序(HeapSort)是一树形选择排序。堆排序的特点是:在排序过程中,将R[l..n]看成是一棵完全二叉树顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录;

 基本的内部排序算法分析:

       堆排序:是直接选择排序的改进,可通过树形结构保存部分比较结果,可减少比较次数,堆排序的最坏时间复杂度O(nlogn),空间复杂度O(1);

      插入排序:算法适用于少量数据的排序,时间复杂度为O(n2),是稳定的排序方法;

      起泡排序:冒泡排序是就地排序,且它是稳定的,冒泡排序的最坏时间复杂度为O(n2),平均复杂度O(n2),最好是O(n);

       快速排序:是冒泡排序算法的改进,最坏时间复杂度是 O(n2),最好是O(nlogn),

3.参加培训的n位同学结伴去西湖旁边为游人指路,两人一组,他们打算先让体重之和恰好为102公斤的同学一组,请给出一个算法找到这样的组合,或者确定他们中不存在这样的组合,其中最优的算法时间复杂度为?(假设体重均为整数) (   C  )

A:O(log(n))    B:O(n)      CO(n log(n))    D:O(n^2)

分析:可以利用快速排序 找到K,然后寻找102-k,哈希匹配;

4、众所周知数据结构中非常基本的树结构包括二叉查找树(BST)。当我们把如下序列:10,5,19,4,13,7,6,3,1按顺序建立一棵BST时,树的最大深度是?(令根节点深度为0,执行不进行平衡的基本插入) ( B    )

A:5    B   C:3     D:2 

分析:最坏情况下,当先后插入的关键字有序时,构成的二叉排序树蜕变为单支树,树的深度为其平均查找长度为(n+1)/2(和顺序查找相同),最好的情况是二叉排序树的形态和折半查找的判定树相同,其平均查找长度和log 2 N成正比;
    构造二叉查找树和输入元素顺应有关;
 

6.阿里巴巴启用了新的办公大厦,这里的一切都充满了现代感;工程师们打算在娱乐区用大小相等的圆形材料分割出一些空间,使用A,B,C三个圆形材料,最多可以将空间分为八个区域(包括圆形以外的区域),如果给你五个圆形材料,你最多可以帮助工程师们分出多少个空间? (  D   )

A:20    B:22      C:26     D:32 

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

快速排序算法之所以快,就是由于比较移动元素次数较少;

    

原文地址:https://www.cnblogs.com/HuaiNianCiSheng/p/3094045.html