串,数组和广义表 字符串的匹配算法1.BF算法 BF算法是一个古典的算法,算法主要思想如下图所示 按顺序一位一位进行比较,如果有一位不匹配,那么原字符串+1 2.KMP算法 2020-11-23 文档 栈和队列 堆和栈的区别栈是一种受限的线性表,如下图所示 堆是二叉树的结构,堆是一种常用的树形结构,是一种特殊的完全二叉树,当且仅当满足所有节点的值总是不大于或不小于其父节点的值的完全二叉树被称之为堆。堆的这一特性称之为堆序性。因此,在一个堆中,根节 2020-11-23 文档 线性表 数组和链表得到区别数组 和 链表 之间的主要区别在于它们的结构。数组是基于索引的数据结构,其中每个元素与索引相关联。另一方面,链表 依赖于引用,其中每个节点由数据和对前一个和下一个元素的引用组成。 随机存取和非随机存取1.随机存取就是直接存 2020-11-23 文档 数据结构 2020-11-23 文档 内存管理 分页和分段有什么区别? 页式存储:用户空间划分为大小相等的部分称为页(page),内存空间划分为同样大小的区域称为页框,分配时以页为单位,按进程需要的页数分配,逻辑上相邻的页物理上不一定相邻; 段式存储:用户进程地址空间按照自身逻辑关系划分 2020-11-23 文档 死锁 什么是死锁在两个或者多个并发进程中,每个进程持有某种资源而又等待其它进程释放它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁(deadlock)。 死锁产生的必要条件? 互斥:一个资源一次只能被一个进程使用; 2020-11-23 文档 进程和线程 进程和线程的区别 进程(Process)是系统进行资源分配和调度的基本单位,线程(Thread)是CPU调度和分派的基本单位; 线程依赖于进程而存在,一个进程至少有一个线程; 进程有自己的独立地址空间,线程共享所属进程的地址空间; 进程是拥 2020-11-23 文档 操作系统 参考https://github.com/wolverinn/Waking-Up/blob/master/Operating%20Systems.md 2020-11-23 文档 数据库 MySQL三种存储引擎的区别 InnoDB支持事务,可以进行Commit和Rollback; MyISAM 只支持表级锁,而 InnoDB 还支持行级锁,提高了并发操作的性能; InnoDB 支持外键; MyISAM 崩溃后发生损坏的概 2020-11-23 文档 网络层协议 IP地址的分类 什么是ARP协议ARP协议完成了IP地址与物理地址的映射。每一个主机都设有一个 ARP 高速缓存,里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当源主机要发送数据包到目的主机时,会先检查自己的ARP高 2020-11-23 文档 计算机网络的体系结构 什么是RIP (Routing Information Protocol, 距离矢量路由协议)? 算法是什么?每个路由器维护一张表,记录该路由器到其它网络的”跳数“,路由器到与其直接连接的网络的跳数是1,每多经过一个路由器跳数就加1;更新该 2020-11-23 文档 应用层(HTTP和HTTPS) HTTP协议问题1 HTTP和HTTPS的区别 端口不同:HTTP使用的是80端口,HTTPS使用443端口; HTTP认证机制,更加安全; HTTPS由于加密解密会带来更大的CPU和内存开销; HTTPS通信需要证书,一般需要向证书颁发机 2020-11-23 文档