一点题目和回答

版权:这篇文章来自http://bbs.chinaunix.net/thread-1678578-1-1.html这个帖子,我只是做了一点总结

 

=====================================================

1)tcp三次握手的过程,accept发生在三次握手哪个阶段?

 

三次握手之后

 

 

2)Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?

 

tcp是数据流,udp是数据报,流无边界,数据报有边界

 

 

3)const的含义及实现机制,比如:const int i,是怎么做到i只可读的?

 

编译期间完成,可以用常数直接替换

 

 

4)volatile的含义

 

告诉编译器,这个量会经常变化,拒绝任何优化,永远不相信缓存。

 

 

5)OFFSETOF(s, m)的宏定义,s是结构类型,m是s的成员,求m在s中的偏移量。

 

#define OFFSETOF(s, m) ((size_t) &((s *)0)->m);

 

 

6)流量控制与拥塞控制的区别,节点计算机怎样感知网络拥塞了?

 

流量控制:控制连接的两端发送数据不要太快;
拥塞控制:控制连接所经过的路由器别超负荷;
感知拥塞应该是受到了ICMP抑制报文

 

 

7)100亿个数,求最大的1万个数,并说出算法的时间复杂度。

 

建一个堆,先把最开始的1万个数放进去。以后每进一个,都把最小的赶出来。

 

 

8)设计一个洗牌的算法,并说出算法的时间复杂度。

 

详见http://en.wikipedia.org/wiki/Shuffle

 

 

 

你可能感兴趣的:(算法,优化,tcp,网络,路由器,编译器)