2014年3月29-阿里巴巴线上笔试题-研发岗
将一个从大到小的数组,用以下排序方法排序成从小到大的,______最快。
插入排序
冒泡排序
快速排序
堆排序
18:36:37
IP数据报头采用______字节序,在此字节序下从低地址到高地址0x1234的表示形式为______。
big_endian, 0x12 0x34 0 0
little_endian,0x34 0x12 0 0
big_endian, 0 0 0x12 0x34
little_endian,0 0 0x34 0x12
18:39:03
在x86平台下,下面哪种运算速度最快 。
加
乘
除
余
18:39:14
某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。
45231
42351
12345
54321
18:44:43
先序遍历12453,中序遍历42513,那么后续遍历是____。
45231
42351
12345
54321
18:44:52
对于二分查找算法下面描述正确的是 。
只能用于数组
只能用于链表
只能在已经排序的数据上进行查找
最坏情况下时间复杂度是O(N*logN)
18:45:17
下列哪种算法没有使用分治法的思想________。
插入排序
二分查找
合并排序
快速排序
18:45:26
有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
A按行存,B按行存。
A按行存,B按列存。
A按列存,B按行存。
A按列存,B按列存。
18:47:37
某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的 缓存时间)分别是90ns、80ns、70ns和60ns,则该计算机的CPU时钟周期至少是____。
90ns
80ns
70ns
60ns
18:48:10
标准unix环境下,一个拥有3个线程的进程调用fork产生的子进程中,其线程个数为______。
1
2
3
4
18:48:18
某二叉树有如下特性,每一个结点要么是叶子结点,要么有2个子树。如果有一个这样的树有m个叶子结点,则这棵树的总结点数是 ______。
2m+1
2m-1
2(m-1)
2m
18:49:07
下述描述中,正确的是____。
char const * pointer表示pointer指向的内存区域的内容不能修改
const char *pointer表示pointer不能指向别的内存地址
char * const pointer 表示pointer指向的内存区域的内容不能修改
const char * const pointer在C++语言中不合法
18:49:51
设栈S初始状态为空。元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为c,f,e,d,b,a,则栈S的容量至少应该为______ 。
3
4
5
6
18:50:41
你有一个3X3X3的立方体。你现在在正面左上的顶点,需要移动到对角线的背面右下的顶点中。每次移动不限距离,但只能从前至后、从左至右、从上至下运动,即不允许斜向或后退。有______种方法。
9
90
180
1680
18:51:04
需要频繁的插入删除操作使用什么结构比较合适______。
数组
队列
链表
栈
18:51:19
已知一个递归算法的算法复杂度计算公式为T(n)=T(n/2)+n,则T(n)的算法复杂度为____。
O(n)
O(logn)
O(n2)
O(nlogn)
18:52:34
一个二进制网络通信协议的报文,包头定长,除了包头以外,可以携带长度和内容都不定的负载,设计报文格式时,可以用____方式,确保协议处理程序能够正确识别每一个报文。
在包头中第一个定长字段中写明报文全长
在包头中某个定长字段中写明负载负载长度
在报文头尾加固定长度的边界符
使用定长报文,如负载超长,则分片
18:56:50
红黑树在处理过程中红黑节点会产生冲突,请问在下列操作中解决的冲突中,正确的是______。
插入操作时,解决红黑冲突
删除操作时,解决黑黑冲突
插入操作时,解决红红冲突
删除操作时,解决黑黑冲突
19:00:26
下面属性中,是事物(Transaction)属性的有____。
原子性(Atomic)
并发性(Concurrency)
一致性(Consistent)
隔离性(Isolated)
持久性(Durable)
19:00:32
正则表达式 2[0-4]\d|25[0-5]|[01]?\d\d?$ 能匹配以下哪个表达式 ?
255
256
2
25a
19:01:32
有一种用左右值表示树形结构的存储格式,其中左右值有一些相当有用的场景,但是每个节点的左右值需要遍历树形结构计算出来。一个示例:
N[1,12]
|__N[2,7]
| |__N[3,4]
| |__N[5,6]
|__N[8,11]
|__N[9,10]
请完成遍历算法给节点赋左右值。
typedef struct node_t {
int left;
int right;
int n_children;
1 children;
} NODE;
int visit(NODE * node, int value) {
node->left = value;
int i = 0;
for(i=0; i<node->n_children; i++) {
2
}
3
return value;
}
int initLR(NODE* root) {
return visit(root, 1);
}
19:08:27
请写一个表达式,用于判断一个INT32整数n是不是2的幂。该表达式在n是2的幂的时候返回true,其他时候返回false。
19:08:36
C语言编写的动态库中的函数,如何才能被C++调用?
以下是一段基于链表的栈的实现代码,请补充空白处的代码。
class Stack {
Node top;
Object pop() {
if (top != null) {
Object item = top.data;
(1)
return item;
}
return null;
}
void push(Object item) {
Node t = new Node(item);
(2)
top = t;
}
}
class Node{
Node next;
Object data;
public Node(Object item){
data = item;
}
}
某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。
45231
42351
12345
54321
先序遍历12453,中序遍历42513,那么后续遍历是____。
45231
42351
12345
54321
作者:少帅
出处:少帅的博客--http://www.cnblogs.com/wang3680
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但请保留该声明。
支付宝 微信