1.迅雷2016研发工程师笔试题(归并排序)
将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是(D)
A:2n
B:2n-1
C:n-1
D:n
解释:假设一张表的数字全部比另外一张表的最小数字小,则第一张表全部数字(n)与第二张表第一个数字对比,所以次数为n
2.京东2017校园招聘笔试真题(希尔排序)
对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为(A )
A:{6,18,8,5,15,10,20,30,25,35,28}
B:{10,18,8,5,15,6,20,30,25,35,28}
C:{10,20,8,5,15,6,18,30,25,35,28}
D:{10,20,30,5,8,6,15,18,25,28,35}
解释:希尔排序,也叫做缩小增量排序,基本思想:设定一个元素间隔增量gap,将参加排序的序列按这个间隔数gap从第一个元素开始依次分成若干个子序列。在子序列中采用其他排序方法,然后缩小增量gap,重新将整个序列按照新的间隔数gap进行划分,在分别对每个子序列进行排序,直到间隔数为1.
初始序列为:{10,20,8,25,35,6,18,30,5,15,28}
取增量为5:
子序列1:{10, 6, 28}
子序列2:{ 20, 18}
子序列3:{ 8, 30}
子序列4:{ 25, 5}
子序列5:{ 35, 15}
所以结果为: {6,18,8,5,15,10,20,30,25,35,28} 所以选择:A
3.2016年今日头条校招笔试题(调度算法)
有三个程序J1,J2,J3。程序在单核CPU执行时,三个程序需要的资源如下所示:
优先级高的程序可以抢占优先级低的程序的CPU,但不能抢占IO。问当所有任务执行完时,共消耗的时间是多少?(B)
A:170ms
B:130ms
C:120ms
D:160ms
解释:具体操作如下:
1. 初始时:J1和J2一起运行,J1占CPU(40ms), J2占IO(50ms) , J3未运行
2. 40ms时:J1释放CPU,等IO, J2未使用完IO,所以CPU空闲,此时让J3使用CPU。
3. 50ms时:J1占用到IO, J2从J3中抢走CPU,使用20ms。 此时J3已经使用CPU(50-40=10ms)
4. 70ms时:J2使用完CPU,J2结束。J3可以使用CPU,
5. 90ms时:J3使用完CPU(90-70=20ms),J3等待IO
6. 110ms时:J1才刚刚使用完IO,释放,J1结束。 J3得到IO。
7. 130ms时:J3使用完IO。J3结束 所以选:B
4.2016CVTE校招在线笔试题(图的邻接表)
已知图的邻接表如下所示,根据算法,则从节点0出发按广度优先遍历的节点序列是(C)
A:0 1 2 3
B:0 1 3 2
C:0 3 2 1
D:0 3 1 2
解释:
先看深度优先:是从某个顶点出发,访问完后,寻找一个未访问的邻接顶点继续深度优先,如果此路不同就往回退,所以看邻接表,首先访问V0,完了后顺链寻找没有访问的邻接顶点,自然链表中的第一个结点就是v3,接着转到v3再来深度优先,访问v3后,在其链表中第一个邻接顶点是v2,接着访问v2,下面走不通,回到v3,继续顺链往后,下面路不通,回到v0,v0的邻接顶点中v1还没有访问所以序列为v0, v3, v2, v1
再看广度优先:从某个顶点完成后,需要一口气将其邻接未访问的所有顶点都访问,后面类推于是过程是先v0,再顺链将v3,v2,v1依次访问完,访问结束,所以最后访问序列为v0, v3, v2, v1
该题比较特殊,深度和广度结果相同,选择:C
5.2016CVTE校招在线笔试题(拓补序列)
已知有向图G=(V,E)其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V2,V6>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}则G的拓扑序列是:(BC)
A. V1, V4,V2,V6, V3,V5,V7
B. V1,V2,V3,V4, V5,V6,V7
C. V1,V3, V4,V2,V6,V5,V7
D. V1,V3,V4, V6,V2, V5,V7
解释:画出G=(V,E)对应的图:
显然根据拓扑序列的要求:
V1在V2,V3,V4前面
V2,V3均在V5,V6前面
V4在V6前面
V5,V6均在V7前面
满足要求的有:BC
6.京东2017校园招聘笔试题(分块查找)
在分块查找中,若索引表各块内均用顺序查找,则有324个元素线性表若分成9块,其平均查找长度为( C)
A. 19
B. 18
C. 23.5
D. 33.5
解释:324个元素分成9块,每块对应36个元素
块间 ASL = (9+1)/2 = 5
块内顺序查找: ASL = (36+1)/ 2 = 18.5
所以总的ASL= 5+18.5 = 23.5 选:C
7.百度地图2016校招笔试题(哈夫曼树)
对n(n大于等于2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,正确的是(ACD)
A. 树中一定没有度为1的结点
B. 该树一定是一棵完全二叉树
C. 树种任一非叶结点的权值一定不小于下一任一结点的权值
D. 树中两个权值最小的结点一定是兄弟结点
解释:哈夫曼树定义:在以n个权值{ w1, w2, …, wn } 为n个叶子结点权值所构造的所有二叉树中,WPL最小的二叉树。
构造哈夫曼树可以按下面步骤构建:
1,将所有左,右子树都为空的作为根节点。
2,在森林中选出两棵根节点的权值最小的树作为一棵新树的左,右子树,且置新树的附加根节点的权值为其左,右子树上根节点的权值之和。注意,左子树的权值应小于右子树的权值。
3,从森林中删除这两棵树,同时把新树加入到森林中。
4,重复2,3步骤,直到森林中只有一棵树为止,此树便是哈夫曼树。
选项A,显然是正确的;选项B:n=3时就不是完全二叉树;选项C:非叶结点的权值为两个孩子的权值之和,权值应该表示的是概率,那么都是正的,故一定不小于。选项D:由哈夫曼树的构造方法显然。所以,选择:ACD
8.Google 2012 笔试题(树)
一个有n个结点的连通图的生成树是原图的最小连通子图,且包含原图中所有n个结点,并且有保持图联通的最少的边。最大生成树就是权和最大生成树,现在给出一个无向带权图的邻接矩阵,权为0表示没有边。
{{0,4,5,0,3},
{4,0,4,2,3},
{5,4,0,2,0},
{0,2,2,0,1},
{3,3,0,1,0}},
求这个图的最大生成树的权和?(D)
A. 11
B. 12
C. 13
D. 14
E. 15
解释:根据题意,可画出如下图:右边为邻接矩阵对应的无向图;左边对应生成的最大生成树
所以对应的最大权和为:5+4+3+2=14,选:D
9.阿里巴巴2015基础平台研发工程师实习生笔试题(二叉树)
一个具有513个节点的二叉树,有(C)种可能的层高。
A. 513
B. 512
C. 504
D. 503
E. 2
F. 1
解释:最高是每层一个结点,有513层;
最低是完全二叉树情况,9层最多有(2^9-1)=511<513,所以最少为10层。
所以从10到513共有513-10+1=504种情况。选:C
10.Google2012笔试(连通树)
一棵树(>=3个节点)最少需要删掉几个节点才能使得这棵树不连通?(B)
A. 0
B. 1
C. 2
D. 3
解释:树:连通,无环。一个顶点要到达另一顶点,有且仅有一条路径。所以只要删除任一条边即可。 不过题目要的是删除顶点,那么就删除那些内顶点(以及他们连着的所有边),也就是非叶子节点。选:B
11. 2016年360校招笔试题(二叉搜索树)
在含有50个结点的二叉排序树上,查找关键字为20的结点,则依次比较的关键字有可能是(D)
A. 15、35、18、14、20
B. 35、25、28、15、20
C. 35、25、18、15、20
D. 15、35、25、20
解释:结题思路如下图:原则是:排序二叉树特点:左子树上所有结点的值均小于它的根结点的值; 右子树上所有结点的值均大于它的根结点的值.若值比根节点大,往左点查找;若值比根结点小,往右查找。
所以:选择:D
12.网易有道2017内推笔试题(循环队列)
大小为MAX的循环队列中,f为当前队头元素位置,r为当前队尾元素位置(最后一个元素的位置),则任意时刻,队列中的元素个数为()
A. r-f
B. (r-f+MAX+1)%MAX
C. r-f+1
D. (r-f+MAX)%MAX
解释:在普通队列中,若队首为head, 队尾为tail的条件下,队内元素个数为tail-head+1 所以 循环队列元素个数为(tail-head+1+MAX)%MAX 选B
13.阿里巴巴研发工程师实习生笔试题(猜数字)
A,B,C三位同学都是很聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看见别人的数字但无法看见自己的数字,现在面试官告诉他们这些数字都是自然数并且构成一个等比数列,让A、B、C同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过__3__次有同学能准确说出自己的数字。(B)
A. 2
B. 3
C. 4
D. 5
E. 6
F. 7
解释:A看到的是4,8所以A有两种可能2或16,A不确定
B看到的是2,8所以在A不确定的时候,B有两种可能4或32,B不确定
C看到的是2,4所以C有两种可能1或8,但是当C是1的时候,B看到的是1,2这样B肯定能确定自己是4,所以C不是1,C是8,C确定
所以需要3次,选择:B
个人能力有限,欢迎各位博友批评指正!!!