网易初游研面经
1、inline的用法?
2、class A
{
int a;
short b;
int c;
}
sizeof(A)的大小?类中加上double d;呢?
3、你知道什么排序算法?它们的平均复杂度各是多少?其中稳定的排序有哪些?
4、说一下快排。它的最坏复杂度是多少?什么情况下最坏?
5、说一下归并?
6、哈希是什么?哈希如何存储数据?什么情况下用到哈希?
7、说一下static的作用?
8、虚函数你知道吗?它是如何实现的?
9、如何让一个类被有限次数的实例化?
10、纯虚函数是什么?如何定义?
11、一个类如何被称为抽象类?抽象类可以实例化吗?为什么?
12、如何比较两个对象?
13、跳台阶,一次跳1阶或2阶,n阶有多少种跳法?(最多能跳n阶呢?)(动态规划,递归)
14、一个链表,实现它的翻转。(当时定义了三个指针, = =反正挺简单的)
15、有一个数组,所有数据都可以是负数、0、正数,求和最大的连续序列。如果是一个矩阵呢?(矩阵的没答上)
16、stl库懂吗?你常用的有什么?
17、vector的底层是什么?它是如何实现动态分配空间的?如果将其中一个元素删除,那么它的地址空间是怎么样的?
18、map、set知道吗?(知道,底层红黑树。既然你说到红黑树,那说一下红黑树是什么?它的实质是什么?如何实现的?)说一下它们的区别?
19、线程和进程的区别?线程间如何通信?线程共享的资源有什么?
20、TCP和UDP的区别?TCP如何实现可靠传输?它们的传输方式?
21、socket懂吗?如何实现?
23、给你一串字符串,压缩它有几种方法?
24、vector赋值n个数,它需要拷贝几次?
25、基类A,派生类B继承于A,A *a = new B[10]是否正确?会发生什么错误?a[5]能正确的取到对象吗?
26、两个链表,判断他们是否有相交部分?如果他们相交部分有环呢?
27、一副扑克,如何等概率洗牌?不消耗额外空间呢?