阿里巴巴笔试题目(2009.9)
技术类笔试试题(卷一)卷一:Java开发、测试工程师(25题)
技术类笔试试题(卷二)卷二:搜索研发、C++(25题)
1. 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们任意选其中4人送给他们一人一本《effective c++》,那么我们选出的4人都在不同排的概率为:
A.5^4*5!*15!/20!
B. 4^5*5!*15!/20!
C. 5^4*4!*16!/20!
D. 4^5*4!*16!/20!
5^4/C(20,4)
2. 若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为:
A.f,c,b
B.f,d,b
C.g,c,b
D.g,d,b
二分查找的理论
算法思想:
将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,
将查找区间缩小一半。
折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件
是查找表中的数据元素必须有序。
算法步骤描述:
step1 首先确定整个查找区间的中间位置;
mid = ( left + right )/ 2;
step2 用待查关键字值与中间位置的关键字值进行比较;
若相等,则查找成功;若大于,则在后(右)半个区域继续进行折半查找;若小于,则在前(左)半个区
域继续进行折半查找 ;
Step3 对确定的缩小区域再按折半公式,重复上述步骤。最后,得到结果:要么查找成功,要么查找失败。
折半查找的存储结构采用一维数组存放。
floor(lower+high/2)
3. perl里面声明:open(FILE, mode,file); 操作的描述,下列哪项不正确?
A. FILE可以用变量$file来代替
B. mode可以和file写在一起,例如:open(FILE, ‘>file’)
C. mode为+<的时候,只可以读文件,不能写文件
D. mode可以省略不写
mode为+<的时候,既可读又可写
4. 有一虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页
A.7
B.8
C.9
D.10
开始的3次也是缺页
采取 FIFO 页面淘汰算法,如何计算缺页。
答:操作系统的虚拟存储器管理技术中,有一项比较重要的分支叫分页存储管理。分页管理是在页架中装入一些需要使用或过去使用过的页面,但是页架的数量是有限的,这里就会用到一些页面置换算法,使得页面访问的效率提高。判断一个置换算法优劣的指标就是缺页率,缺页是指当前的页架中没有需要访问的页面,而需要将该页面加入其中一个页架。缺页率=访问缺页次数/访问总次数。
先进先出算法(FIFO)是一个实现起来比较简单的页面置换算法,其基本原则是“选择最早进入主存的页面淘汰”,理由是最早进入的页面,其不再使用的可能性比最近调入的页面要大。理论上来说,如果分配的页架数增加的话,缺页率是会减少,但是 FIFO 算法对于一些特殊的页面访问序列会有随着分给的页架数增加,缺页率也增加的异常现象。
5. 设有一个顺序栈S,元素s1,s2,s3,s4,s5, s6依次进栈,如果六个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为多少
A.2
B.3
C.4
D.5
6. 下列关于文件索引结构的叙述中,哪一个是错误的?
A. 采用索引结构,逻辑上连续的文件存放在连续的物理块中
B. 系统为每个文件建立一张索引表
C. 索引结构的优点是访问速度快,文件长度可以动态变化
D. 索引结构的缺点是存储开销大
文件索引结构
答:索引就是在内存中(当然如果索引太大,也可能在硬盘固定的,连续的存储块中)建立一个真实数据的映射,通过索引,我们确定要找的数据范围,然后再通过尽量少的 IO 到硬盘上把目标数据抓回来。以下是可以作为索引的数据结构,其中 mysql 采用的是 B+树。 顺序文件:几种简单的文件组织,其产生方式是将数据文件按某个查找键排序,并在该文 件上建立索引。 ? 稠密索引:这种索引为数据文件的每个记录设一个键-指针对。这些键-指针对按它们的键 值顺序存放。 ? 稀疏索引:这些索引为数据文件的每个存储块设一个键-指针对。与指针相对应的键为该 指针所指向的存储块中第一个键值。 ? 多级索引:在索引文件上再建索引,在索引的索引上再建索引,等等,这在有时候是很有用的。高级索引必须是稀疏的。 ? 文件的扩展:随着数据文件和它的索引文件的增长,必须采取一些措施来为文件增加附加的存储块。为文件的基本块增加溢出块是一种可行的办法。在数据文件或索引文件的块序 列表中插入更多的块,除非要求文件本身存放在连续的磁盘块中。 ? 辅助索引:即使数据文件没有按查找键 K 排序,我们也可在键 K 上建立索引。这样,索引 必须是稠密的。 ? 倒排索引:文件与其包含的词之间的关系通常可通过一个词-指针对的索引结构来表示。 指针指向“桶”文件的某个位置,该位置上有一个指向文件中词的出现的指针列表。 ?B 树:这些结构实质上是有着很好的扩充性能的多级索引。带有 n 个键和 n+ 1 个指针的存储 块被组织成一棵树。叶结点指向记录。任何时候所有索引块都在半满与全满之间。 ? 范围查询:指查找键值在给定范围内的所有记录,有索引的顺序文件和 B 树索引可为这类查询提供便利,但散列表索引不能。 ? 散列表: