LRULRU(最近最少使用) 置换算法, 一般用于固定大小的缓冲区中, 选择最近使用的数据保留在缓冲区中. 这样是建立在最近使用的数据可能最近还会再次使用的假设上, 来减少耗时的读取次数. 为了尽可能快地实现 LRU, 就需要看在 LRU 算法中需要进行哪些操作: Get(key), 通过 Get
TCP 的信息传输TCP 是面向连接的传输层协议, 因此在传输数据之前要先建立连接. 连接是一个很抽象的概念. 从广义上来说, 连接是指将两个个体按照某种方式建立联系的过程. 而在 TCP 协议中, 由于需要进行数据传输, 因此此时的个体即为 TCP 的客户端和服务端, 而建立的联系即为信息传输的通
哲学家就餐问题「哲学家就餐问题」是一个非常经典的线程同步互斥以及死锁问题, 问题描述如下: 有 5 个哲学家围坐在一个圆桌上思考. 相邻的两个哲学家中间有一个叉子, 所以一共有 5 个叉子. 而当一个哲学家饿了, 他需要拿起左右两个叉子才可以进餐. 哲学家在进餐完成后会放下叉子, 继续思考, 直到他
对于所有的编程语言, 都必须要考虑的一件事就是管理内存. 对于这件事, 各种语言是八仙过海, 各显神通. C/C++ 将内存的管理交给程序员, 这样就的好处就是能够细致化地优化程序, 但弊端则是十分难以维护. 往往会出现野指针、指针悬挂等问题, 导致程序出现 bug 或者内存没有得到释放. 而高级语
突发奇想去南安普顿的周边城市,温彻斯特玩了一转。其实最初的打算是去一个教堂去看看,增长自己的见识。再加上室友也想出去看看,所以约好一起去。 由于是临时起意,没有多做准备,吃完午饭之后就出发了。从南安普顿到温彻斯特教堂并不远,坐蓝色的 bluestar 1 号就能直接到达。但是令人可惜的是,由于这一趟
进度条的显示结构对于一个进度条来说,最重要的应该是显示进度。对于进度的显示,可以有多种形式: 用一个长条来表示,随着任务的逐渐完成,长条逐渐被填满。因为人类对于形象的信息接受地更快,所以形象的长条状能够很好地让使用者认识到当前进度以及还差多少。 使用百分比来显示。直观展现还剩多少,已经完成了多少。
什么是中间件?中间件通常是一小部分代码,能够在后端处理请求之前或者之后,对请求和响应作出处理。这就要求了中间件的体量不能过大,并且职责要求尽量单一,便于接藕。 一个很简单的例子,如果我们打算记录每个请求被响应的总时间,那么我们可以在最外层套一层中间件。这样就可以得知从收到请求到返回响应的总时间了。
七月份的尾巴 你是狮子座, 八月份的前奏 你是狮子座, 相遇的时候 如果是个意外, 离别的时候 意外的看不开 今天在看一部小说的时候, 看见女主对男主说: “这就是我的全部了”. 让我想起了战场原在化物语的最后一集, 躺在草坪上、看着星空、对垃圾君说:“这就是全部了, 这些就是我拥有的一切了”. 不
string 库是一个 Python 标准库, 主要包含字符常量和Formatter, 这里我们主要了解 Formatter. 字符常量不过多解释啦, 都是某一类字符组成的字符串. # 小写字母组成的字符串 print(f"All lowercase letters characters:
前言终于开始折腾编辑器了,就怕最后折腾完又回到起点。 我之前一直是使用 idea+python 插件+golang 插件+rust 插件作为日常使用的,然后使用 ide-eval-resetter 插件逃票(⁎⁍̴̛ᴗ⁍̴̛⁎),因为实在是负担不起那高昂的费用,也懒得去注册学生账号。然后 vscod
数据结构线性表用顺序存储结构实现线性表时, 在线性表中查找等于 x 的元素, 通常先在线性表尾部添加一个等于 x 的元素, 这样做可以加快查找速度, 为什么? 用单链表实现线性表时, 能否加快速度, 为什么? 之所以可以加快查找速度, 是因为如果不添加一个等于 x 的元素, 就需要在每次循环中判断数
数据结构散列表什么是哈希函数? 什么是哈希查找? 如何解决冲突? 分析影响哈希查找算法的性能的因素. 哈希函数: 根据给定的关键字来计算出关键字再给定点哈希表中的地址的函数. 哈希查找: 是根据哈希函数并结合冲突解决方法在已构造的哈希表中查找关键字的一种查找方法. 哈希查找的时间复杂度一般为 O(1
数据结构判断题 若有一个栈的输入序列是 1,2,3,…,100, 输出序列的第一个元素是 100, 则第 50 个输出元素是 50. 错误, 第一个输出的是 100, 那么第 50 个输出的是 51. 在一个有向图中, 所有顶点的入度之和等于所有顶点的出度之和. 正确, 对于每一条边, 都会增加一个
数据结构判断题 在一个图中,所有顶点的度数之和等于所有边的总数. 错误, 所有顶点的度数只和等于所有边的总数的两倍. 快速排序在被排序数据已基本有序的情况下最易发挥其长处. 错误, 快速排序在基本无序的情况下发挥其长处. 冒泡排序在数据已基本有序的情况下最易发挥其长处. 求子串的定位操作称为串的模式
数据结构问答题 如何将图表示为邻接矩阵? 给出其类型定义. 图是由点和边组成的, 而用邻接矩阵表示图, 就是用一个二维数组表示图中的点和边. 具体而言就是用二维数组的下标表示点, 然后二维数组中的值表示两点之间是否有边. 具体类型定义如下: class AdjacencyMatrix(object)
数据结构简述题 连通分量 无向图中的极大连通子图称为连通分量. 连通分量主要用于确定从图中的一个顶点能否到达图中的另一个顶点. 最小生成树 对于一个带权连通图 G=(V,E) 从中得到一个 G1=(V1,E1) 的子图. 并且这个子图为一棵树, 则称子图为生成树. 最小生成树则表示在 G 的所有生成
数据结构简答题 什么是队列, 什么是循环队列? 只允许在线性表点一端进行插入, 另一端进行删除操作的线性表, 被称为队列. 循环队列是指将顺序队列假想为一个环状的空间, 即把存储队列元素的表从逻辑上看成一个环. 什么是最小生成树, 如何构造最小生成树? 对于一个带权连通图 G=(V,E) 从中得到一
数据结构简答题 栈和队列有什么共同点和不同点? 共同点: 都是一种特殊的线性表, 都仅允许顺序表的头/尾进行加入元素/删除元素的操作. 不同点: 栈是一种 FILO 的数据结构, 只允许在栈顶进行加入或者删除操作, 因此最先加入的元素, 最后才会被推出. 队列是一种 FIFO 的数据结构, 只允许在
数据结构名词解释 循环队列 将队列想象成一个环状的空间, 即把存储队列元素的表从逻辑上看成一个环. 快速排序 基于分治的方法, 在待排序列中任取一个元素作为基准, 通过一趟排序将待排序序列分成独立的两个部分, 而后分别递归的对两个子表重复上述过程, 直至每部分内只有一个元素或空为止, 即所有元素都放
吐槽 Go 语言的机制起因今天突发奇想想用 Go 来写一写 LeetCode 困难题。因为平时感觉 Go 还是挺靠谱的(而且速度比 Python 快多了),比起 Python 的方便快捷,Go 更给我一种我能完全掌握我在干嘛的感觉(现在看来这就是幻觉)。 所以打开了今天的拦路虎 题目介绍首先看到这个