牛客网算法工程师能力评估
题目来源:https://www.nowcoder.com/test/200/summary
1、递归算法x(x(8))需要调用几次函数x(int n)?
class program
{
static void Main(string[] args)
{
int i;
i = x(x(8));
}
static int x(int n)
{
if (n <= 3)
return 1;
else
return x(n - 2) + x(n - 4) + 1;
}
}
选C。根据题意,易得x(3) = x(2) = x(1) = x(0) = 1
2、下列关于数的宽度优先搜索算法描述错误的是?
B、常采用先进后出的栈来实现算法
C、空间的复杂度为O(V+E),因为所有节点都必须被储存,其中V是节点的数量,E是边的数量
D、时间复杂度为O(V+E),因为必须寻找所有到可能节点的所有路径,其中V是节点的数量,E是边的数量
选B。为了让先搜索结点的邻结点也先搜索,只能使用先进先出的队列的思想。宽度优先搜索算法常用于图。
3、在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是多少?
4、下面关于B-和B+树的叙述中,不正确的是
5、具有3个结点的二叉树有几种形态?
6、已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为多少?
7、已知数据表A中每个元素距其最终位置不远,为节省时间排序,应采用什么方法排序?
8、将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?
9、有2n个人排队进电影院,票价是50美分。在这2n个人当中,其中n个人只有50美分,另外n个人有1美元(纸票子)。愚蠢的电影院开始卖票时1分钱也没有。 问: 有多少种排队方法 使得 每当一个拥有1美元买票时,电影院都有50美分找钱 ?
10、T(n) = 25T(n/5)+n^2的时间复杂度?
11、连续整数之和为1000的共有几组?
12、一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,1是这个序列的第一个元素。求第1500个值是多少?
故,结果为68*30=2040+5=2045
13、写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式。
14、下列关于线性表,二叉平衡树,哈希表存储数据的优劣描述错误的是?
15、下面程序的功能是输出数组的全排列。请填空。
void perm(int list[], int k, int m)
{
if ( )
{
copy(list,list+m,ostream_iterator<int>(cout," "));
cout<<endl;
return;
}
for (int i=k; i<=m; i++)
{
swap(&list[k],&list[i]);
( );
swap(&list[k],&list[i]);
}
}