标签: interview

8 篇文章

用Random(0, 1)来实现Random(a, b)
通过Random(0, 1)生成Random(a, b),实际上我们生成random(0, b-a) + a 就可以了,然后问题就转换为了Random(0, 1)生成Random(0, n), 这里n = b - a。 由于Random(0, 1)我们认为产生的 0 跟 1 这两个数是随机的并且相互独立的。所以,我们可以求得最小的 bit 位数,使…
Socket 相关
I/O 模型 一个输入操作通常包括两个阶段: 等待数据准备好 从内核向进程复制数据 对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。 Unix 有五种 I/O 模型: 阻塞式 I/O 非阻塞式 I/O I/O 复用(select 和 …
基础知识总结-数据结构
顺序结构 顺序栈(Sequence Stack) SqStack.cpp /** * @author huihut * @E-mail:huihut@outlook.com * @version 创建时间:2016年9月9日 * 说明:本程序实现了一个顺序栈。 * 功能:有初始化、销毁、判断空、清空、入栈、出栈、取元素的操作。 */ #includ…
基础知识总结-操作系统
进程与线程 对于有线程系统: 进程是资源分配的独立单位 线程是资源调度的独立单位 对于无线程系统: 进程是资源调度、分配的独立单位 进程之间的通信方式以及优缺点 管道(PIPE) 有名管道:一种半双工的通信方式,它允许无亲缘关系进程间的通信 优点:可以实现任意关系的进程间的通信 缺点:长期存于系统中,使用不当容易出错;缓冲区有限 无名管道:一种半双…
基础知识总结-tx
√ 单向链表反转 √ top K 问题 红黑树,AVL数,B+, B-树等的区别。 √ 希尔排序 二叉树改平衡树 √ C++11的智能指针 √ 跳表 boot loader。 √ 进程的状态转换图。 √ 进程间通信的方式。 内核态和用户态的区别,为什么要这样划分,如果不这样划分你觉得理由是什么。 √ 知道的几种设计模式。 √ 多态用什么实现(虚函数…
基础知识总结-网络编程
计算机经网络体系结构: 各层作用及协议 分层 作用 协议 物理层 通过媒介传输比特,确定机械及电气规范(比特 Bit) RJ45、CLOCK、IEEE802.3(中继器,集线器) 数据链路层 将比特组装成帧和点到点的传递(帧 Frame) PPP、FR、HDLC、VLAN、MAC(网桥,交换机) 网络层 负责数据包从源到宿的传递和网际互连(包 Pa…