第一大题要求用二分查找在一个序列里查找一个key。这题实际包含两个小题。第一个小题它给出的函数原型是:
int f1(int* array,int size,int key);
具体要求大概是:array是个有序序列,要求用二分查找找出指定的key,如果key在序列中,返回序列的位置,如果key不在序列中,则返回key应当被插入的位置。
第二小题给出的原型也是一样:
int f2(int* array,int size,int key);
不过要求却不同。array是个先增后减的序列,临界值mid的位置是不确定的。同样的要求查找指定的key,如果key在序列中,则返回key的位置,如果不在,则直接返回-1(不必指出key应当插入的位置)。
第二大题考的是“左孩子右兄弟”的树结构,具体要求记不清了,大概是这棵树共右N个结点,在v和m之间….之类的。
第三道大题考的是系统设计题。大概是有一批老数据要导入到新的机器上,这批数据是大小相当的总数为10万个的二进制文件,导入时间与文件大小成线性关系, 一个500K的文件需要3秒的导入时间,文件的平均大小是1000K。用以转换函数也已经有,不过这些函数存在不少问题,譬如会产生数组越界等等,然后时 间又不允许你重写一套函数…,然后就要你设计一个方案来实现…大概就是问的这个方向,要你用文字表述清楚你的方案。
其他试卷中,至少还有另外两套的第一,第二大题就是这第一份试卷的第一,第二大题,最后一道题则根据职位的不同而改为考其他内容。
这所有的题目当中我记得的还有:
有一道也是考数据结构与算法的图论题,题目大抵是G是一个有向图,v,m是图的两个顶点,要求你找出v,m间的最短路径,如果存在多条最短路径,还要求出其条数。当然还有输入输出的格式要求。
招web开发工程师的试卷的第一大题有几道小简答题组成,问的是诸如路由器与交换机的区别,TCP与UDP的区别等一类的问题。
另一份也是应该也是招前端开发的试卷考了不少java script,CSS一类的内容,不过都不难。例如叫你写一个java script函数,让你判断浏览器是不是IE浏览器。
在几份题中大概有3道题考道了Linux,都是小题,例如让你用命令将A,B,C三个文件打包成一个叫做bank.tar的文件;
cat a|grep Baidu的执行过程。
还有一道题考到了数据库的构架