【笔试真题】网易2013年题目(附答案)(1).pdf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 笔试真题 笔试 网易 2013 题目 答案
- 资源描述:
-
1、一:给了一个用递归实现的快排的代码,要求改写成用栈实现的/*快速排序的非递归实现*/int partition(int a,int left,int right)if(a=NULL)return-1;if(left=right)return-1;int X=aleft;int i=left;int j=right;while(i j)while(i=X)j-;if(i j)ai+=aj;while(i j&ai X)i+;if(i j)aj-=ai;ai=X;return i;void quick_sort2(int a,int left,int right)stack s;int mid=p
2、artition(a,left,right);if(mid=-1)return;if(left mid-1)s.push(left);s.push(mid-1);if(mid+1 right)s.push(mid+1);s.push(right);while(!s.empty)int r=s.top();s.pop()int l=s.top();s.pop();mid=partition(a,l,r);if(mid=-1)return;if(l mid-1)s.push(l);s.push(mid-1);if(mid+1 r)s.push(mid+1);s.push(r);二:游戏中让玩家参与
3、抽奖,抽装备.玩家先被等概率传送到十二个房间(对应十二星座),第i个房间中拿到装备的概率是 i/50.玩家抽奖失败后可以花 100 金币再抽一次(第一次不用),如果抽中了则不能再抽.先是问要抽到装备平均要花多少金币;又问:玩家不喜欢传到 12 个不同房间的设定,现在要求只能传到一个房间,这个房间提供有 12 种装备,要求每种装备被抽中的概率和之前的一样.就此实现一个生成随机数的算法.三:先是给出了 P,V 原语及信号量的定义,然后有一个场景:一个水果忍者不停的往一个篮子中捡水果,水果有西瓜和梨两种,篮子最多装 10 个水果,装不了就等待.同时鸣人和佐助分别从篮子中拿西瓜和梨吃,只要有的吃就拿,
4、否则就等待.用 PV 原语 写一段伪代码模拟这个过程.Semaphore empty=10;/篮子里空位的个数Semaphore watermelon=0,pear=0;Semaphore mutex=1;int fruits=0;ninja()P(mutex);P(empty);if(rand()%2)V(watermelon);elseV(pear);V(mutex);naruto()P(mutex);P(watermelon);V(empty);V(mutex);sasuke()P(mutex);P(pear);V(empty);V(mutex);四:给出了跳表的结构,要求实现一个跳表上
5、的查询操作 search(k),然后分析 search 的时间复杂度.最后再写一个 insert()的操作.五:有 N 个广告牌(N=10 万)可以投放广告,有 k 个用户(k10 亿)在这些广告牌上投放广告.操作rent(i,j,k)将从 i 到 j 块 广告牌展示用户 k 的广告,如果原来有别的广告就覆盖掉.操作 query(i)返回第 i 个广告牌上现在投放的是哪个广告.rent 和 query 操作出现的频率相等.要求设计一个数据结构和相应的算法,尽可能快的实现这两种操作.六:给出了一段英文文献,是关于 code block 的,然后要求根据文献中给出的算法写一段代码.要用到 STL.
6、七:判定给定的字符串序列是否是人类基因片段,人类基因片段的特点是:大写字母后边跟相应小写字母,或者是小的基因片段连在一起。写函数判断。1.LRU 算法最少使用页面置换算法。LRU 算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。因此,我们只需要在每次调换时,找到最少使用的那个页面调出内存。这就是 LRU 算法的全部内容。2,在 c+中调用 c 函数extern C/函数声明3,用 typedef 声明函数指针typedef (*)(参数表)typedef void(*PF)(
7、int x);void func1(int x);PF pFunc;/声明一个函数指针只需要用 PF 类型名pFunc=func1;/此处也可以使用 pFunc=&func1;4,程序内存分配的方式内存分配方式有三种:1 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。2 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。3 从堆上分配,亦称动态内存分配。程序在运行的时候用 malloc 或
8、new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,频繁地分配和释放不同大小的堆空间将会产生堆内碎块。1.变量在内存地址的分布为:堆-栈-代码区-全局静态-常量数据2.同一区域的各变量按声明的顺序在内存的中依次由低到高分配空间(只有未赋值的全局变量是个例外)。3.全局变量和静态变量如果不赋值,默认为 0。栈中的变量如果不赋值,则是一个随机的数据。4.编译器会认为全局变量和静态变量是等同的,已初始化的全局变量和静态变量分配在一起,未初始化的全局变
展开阅读全文
搜弘文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。



1-营销部关键绩效考核指标.docx
鸿星尔克工序管理及计件工资核算蓝图设计方案.pptx
1、京东集团员工手册-55页.pdf
【表格】华为导师导师制评分细则.xlsx
