基础学习
夯实基础...
Tobetman
一只在读硕士~
展开
-
跳跃表原理与操作过程
1.跳跃表在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,也不能通过2分的方式缩减时间复杂度。如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。...原创 2020-08-09 12:55:03 · 1262 阅读 · 0 评论 -
进程用户态和内核态及其切换过程
1.进程的堆栈 内核在创建进程的时候,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,CPU堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,CPU堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。2.进程用户栈和内核栈的切换 当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈转到内核栈原创 2020-05-24 22:50:10 · 4824 阅读 · 1 评论 -
二叉树非递归后序遍历的两种方法(C/C++)
1.镜像二叉树先序遍历结果倒置我们可以知道,二叉树的镜像二叉树的先序遍历顺序为:根—右—左,而原二叉树的后序遍历顺序为:左—右—根。可以发现,镜像二叉树先序遍历的结果倒置过来,刚好是原二叉树的后序遍历结果,因此,可以利用如下代码实现一颗树的后序遍历:vector<int> postOrderNoRe(TreeNode* root){}...原创 2020-04-28 12:20:16 · 1481 阅读 · 0 评论 -
https连接建立过程学习笔记
1.HTTPS简介 HTTPS是在 HTTP(超文本传输协议)基础上提出的一种安全的 HTTP协议,因此可以称为安全的超文本传输协议。HTTP 协议直接放置在 TCP 协议之上,而 HTTPS 提出在 HTTP 和 TCP 中间加上一层加密层。从发送端看,这一层负责把 HTTP 的内容加密后送到下层的 TCP;从接收方看,这一层负责将 TCP 送来的...原创 2020-04-27 17:39:44 · 257 阅读 · 0 评论 -
LRU缓存机制(C/C++实现)
在操作系统中,段式存储、页式存储与段页式存储是文件存储的重要方式。其中,在页式存储中,CPU为了快速获取页的内容,会在内存中缓存一些出现频率较高的页面,如果需要访问未存储在内存中的页面,需要去外设中进行访问,并将其导入到内存;但是,由于内存中不可能承载过量的页面,所以,随着页面数量的增多,系统会覆盖掉一些不常用的页面,这个过程也就是常说的页面置换算法...原创 2020-04-13 23:16:59 · 587 阅读 · 0 评论 -
[一道笔试题]手动实现字符串split功能
今天线上面试某厂,面试官出了这样一道题,大意就是:给定一个字符串,和一个分割字符串,将字符串进行分割,存入到一个数组中。例如一个字符串为:aa;;bb;;;cc;;;;dd;;,其中分割字符串为:;;,将字符串分割为:“aa”,“bb”,”;cc“,"",”dd“,”“,并且输出。面试官让我20分钟跑通算例,一开始我理解错了,以为分割字符串是固定的,后来在面试官的提醒下才发现那只是一个样例...原创 2020-04-03 21:46:28 · 361 阅读 · 1 评论 -
TCP流量控制与拥塞控制学习笔记
流量控制与拥塞控制的区别流量控制主要是面向建立TCP连接的两个端点之间的数据传输。流量控制的目的是动态控制发送方发送数据的速率,防止接收方无法及时有效处理发送数据。目前,TCP连接主要采用滑动窗口来实现流量控制,当接收方处理数据的压力较大时,可以发给发送方一个较小的滑动窗口,防止发送方传输速率过大;当处理数据压力较小时,可以发给发送方一个较大的窗口,从而使发送方提速。拥塞控制不是从TCP两点...原创 2020-03-26 10:53:13 · 188 阅读 · 0 评论