公共题算法
选择题(每题5分)数据结构
1. 若一棵二叉树具备10个度为2的结点,则该二叉树的度为0的结点个数是( )spa
A:9 B:11 C:12 D:不肯定 3d
注解by Snowwolf_Yang:对于一棵二叉树,从只有一个根结点开始,每增长一个度为1的结点,度为0(叶子)个数不变,每增长一个度为2的结点,度为0的个数增长1,因此D0 = D2 + 1blog
2.下列排序算法中,其时间复杂度和记录的初始排列无关的是( )排序
A:插入排序 B:堆排序 C:快速排序 D:冒泡排序 递归
3.已知中序遍历的序列为abcdef,高度最小的可能的二叉树的叶子是( )阿里巴巴
A:ace B:acf C:adf D:cdf 二叉树
4.参加百年阿里培训的n位同窗结伴去西湖旁边为游人指路,两人一组,他们打算先让体重之和刚好为102公斤的同窗一组,请给出一个算法找到这样的组合,或者肯定他们中不存在这样的组合,其中最优的算法时间复杂度为?(假设体重均为整数) ( )搜索
A:O(log(n)) B:O(n) C:O(n log(n)) D:O(n^2)
注解by Snowwolf_Yang:
5.众所周知数据结构中很是基本的树结构包括二叉查找树(BST)。当咱们把以下序列:10,5,19,4,13,7,6,3,1按顺序创建一棵BST时,树的最大深度是?(令根节点深度为0,执行不进行平衡的基本插入) ( )
A:5 B:4 C:3 D:2
注解by Snowwolf_Yang:
二叉排序树(Binary Sort Tree)又称二叉查找树,亦称二叉搜索树。 它或者是一棵空树;或者是具备下列性质的二叉树: (1)若左子树不空,则左子树上全部结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上全部结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;
插入过程:把第一个结点作根,插入时先和根比较,若是大于根,那么递归左子树,若是大于根递归右子树,直到叶子结点,若是途中有遇到相同时,返回结点已存在。到叶子结点时,若是插入值比叶子大,则添加为叶子右结点,不然左结点。
6.阿里巴巴启用了新的办公大厦,这里的一切都充满了现代感;工程师们打算在娱乐区用大小相等的圆形材料分割出一些空间,使用A,B,C三个圆形材料,最多能够将空间分为八个区域(包括圆形之外的区域),若是给你五个圆形材料,你最多能够帮助工程师们分出多少个空间? ( )
A:20 B:22 C:26 D:32
注解by Snowwolf_Yang:这些问题的推导方法是递推,先看多加一个圆后增长了多少个交点,对圆来讲多一个交点就多分了一块区域,而在K个圆上再加一个圆至多能增长2K个交点,因此一个圆分2部分,2个圆分2+1*2,三个圆分2+1*2+2*2,N个圆分2+1*2+2*2+……+(n-1)*2= n(n-1)+2部分