您的位置:首页 > 其它

网易有道客户端开发工程师实习生笔试题

2014-09-02 22:01 344 查看
概括:10道选择填空题,三道编程题

一、选择和填空题

1、选择:给了一个递归求Fibonacci的代码,问算法复杂度

递归的是指数复杂度,非递归的是O(n). 可参见邓芳《关于递归算法时间复杂度分析的探讨》,浙江万里学院学报。

2、选择:在最坏情况下,哪个排序的空间复杂度为O(n)?有归并、冒泡、快排、还有一个忘了;

排序方法 最好情况 最坏情况 平均情况 稳定性 空间复杂度

冒泡排序 O(n) O(n2) O(n2) 稳定 1

快速排序 O(nlogn) O(n2) O(nlogn) 不稳定 O(log n)

简单选择排序 O(n2) O(n2) O(n2) 不稳定 1

堆排序 O(nlogn) O(nlog n) O(nlog n) 不稳定 1

直接插入排序 O(n) O(n2) O(n2) 稳定 1

希尔排序 O(n1.3) 不稳定 1

归并排序 O(nlogn) O(nlogn) O(nlogn) 稳定 O(n)

基数排序 O(d(r+n)) 稳定 O(n)

桶排序
O(n) 稳定 O(k)

3、选择:一个人从一副扑克牌里抽出八张,说我手里有王。另一个人从另一副牌里抽出8张,说我手里有大王。问:他俩谁有两个王的概率大。

可以用条件概率计算,个人认为是后者。

4、填空:著名的蒲丰投针概率问题,在一个平面上有无线条间距为H的平行线,一根针长度为h(H>h),投掷这根针,使之落在平面上,问,针与线有交点的概率

2h/πH,证明见布丰投针几何证明

5、选择:windows中返回地址存在什么地方?

堆栈寄存器,链接寄存器,程序计数器,程序状态寄存器;个人认为堆栈寄存器

6、选择:指针跟引用的用法问题

7、选择:C++和Java中虚函数的区别

8、选择:进程中的线程可共享?

A堆 B栈 C静态变量 D寄存器变量

线程的共享资源包括:全局变量、地址空间、子进程、信号和信号服务程序等。

线程的私有资源:线程号:每个线程都有唯一的线程号、寄存器(程序寄存器和堆栈寄存器)、堆栈、信号掩码、优先级等

9、选择:Android是基于什么系统发展起来的?

Linux

10、忘了

2、三道大题

一、判断单链表是否有环,如果有环,将环反转,O(1)辅助空间。

二、二叉树找最小公共祖先,没注意是不是搜索二叉树。

三、字典排序,输入一个数,写出这个数在字典排序中的下一个数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: