自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Floyd 判圈算法:为什么第二次一定在入口相遇

Floyd判圈算法数学推导摘要: 算法步骤: 快指针(2步/次)和慢指针(1步/次)在环内相遇 重置慢指针到起点,两指针同步1步/次移动 再次相遇点即为环入口 数学推导: 设起点到入口距离a,入口到首次相遇点距离b,环长b+c 由速度关系得:a = (n-2k)(b+c)-b 表明a步等效于走整圈后剩余c步 结论: 第二次移动时,两指针分别走a步必然在入口相遇 第一次相遇证明有环,第二次利用路径等式定位入口 时间复杂度:O(n) 空间复杂度:O(1)

2026-06-01 22:00:34 297

原创 技术精炼:全面拆解 LSM-tree 的 Version 核心机制

本文深入剖析了LSM-tree中Version机制的核心原理与战略作用。Version本质上是静态的磁盘SSTable资产清单,通过二维数组管理7个层级的文件元数据。其绝对只读性和引用计数机制确保了线程安全。Version在数据流中扮演关键角色:前台点查时路由检索顺序,范围扫描时缝合离散文件,后台操作时决策文件位置和触发合并。文章详细映射了Version的核心控制函数及其物理执行流,揭示了其作为多版本控制基石的机制。Version通过严格的时空边界锁定,使LSM-tree在并发环境下保持高性能。

2026-05-27 17:47:11 375

原创 LSM-tree 存储引擎:SSTable 文件的物理结构与迭代器检索机制全面解析

LSM-tree的SSTable采用严格有序的垂直物理结构,包含数据块区、布隆过滤器块区、元索引块区、核心索引块区和固定页脚。数据块通过前缀差分压缩优化存储空间,每隔16个条目设置重启点确保查询效率。各模块按顺序追加写入,最终形成自包含的静态只读字节流。这种设计充分利用了内存预排序的优势,实现了高效的二分查找和范围扫描,同时通过布隆过滤器减少不必要的磁盘I/O。

2026-05-17 19:36:43 377

原创 对lsof、tcpdump、strace命令的简单记录

Linux 中一切皆文件(包括磁盘文件、网络 Socket、设备)。:同时显示十六进制与 ASCII 码(最关键,用于看业务逻辑)。:代表网络 IO 等待。观察程序是在忙着处理请求还是在空转。(索引),无需在代码里打日志即可验证分布式一致性逻辑。:不触动程序本身,从网卡抓取最真实的通信数据。:监控程序与内核之间的“对话”(系统调用)。:禁止解析主机名和端口名,提高显示速度。:观察数据落盘或网络发送的真实频率。:统计所有系统调用的耗时分布。:实时跟踪程序的运行轨迹。:只看程序打开了哪些文件。

2026-05-11 20:27:03 212

原创 深入理解 C++ 高并发基石:原子性与 Acquire-Release 语义

本文深入解析了C++高并发编程中的三种核心内存语义:Acquire、Release和Relaxed。Release语义作为"向下拦截"屏障,确保数据在发布前完全准备好;Acquire语义作为"向上拦截"屏障,保证读取后能看到最新状态;Relaxed语义则仅保证原子性,追求极致性能。文章通过LevelDB跳表示例,展示了Acquire-Release语义如何建立线程间同步契约:当写线程使用Release发布数据,读线程通过Acquire获取时,写线程的所有修改对读线程可

2026-05-06 18:00:53 239

原创 聊天室项目答辩不熟悉问题与拓展内容的学习

汇总了答辩时不清晰的点或学长让下来了解的内容

2025-08-21 18:16:09 926

原创 从0理解 DFS 和 BFS

本文介绍了深度优先搜索(DFS)和广度优先搜索(BFS)两种基础算法。DFS采用递归和回溯思想,通过栈结构实现,适用于遍历所有可能方案;BFS通过队列实现逐层扩展,常用于最短路径问题。文章以全排列和N皇后问题为例,详细解析了DFS的实现过程,包括状态树的构建、回溯和剪枝技巧。最后通过二叉树遍历的三种方式(前序、中序、后序)进一步阐释DFS的递归思想。

2025-08-05 16:36:38 795

原创 【区间dp】最大m子段和问题

讲解最大m子段和模型与一种动态规划解法

2025-06-17 19:53:22 1140

原创 【Linux网络编程】实现epoll多路IO转接以及C++封装epoll反应堆

从实用性出发讲解epoll多路IO转接及用C++的class类封装epoll反应堆

2025-05-20 21:06:43 794

原创 【线程同步】c++实现class类封装线程池

本文从线程池的概念到构造,以及各功能函数的实现,手把手带你实现线程池。

2025-05-11 03:54:52 522 1

原创 【Linux】c语言实现shell

实现的Shell支持管道(|)、输入输出重定向(<、>、>>)、cd命令(支持绝对路径、相对路径和cd -)、屏蔽某些信号(如Ctrl+C),并具备美观的界面。

2025-05-10 15:38:45 497

原创 五种常用最短路算法浅析

若有一个有向带权图,记它的点数为n,边数为m,则有以下最短路算法,本篇将主要从应用层面讲解以下五种算法。

2025-04-30 19:04:46 535

原创 【Linux】C语言实现ls命令

ls命令是linux下最常用的命令。该文章讲解如何使用c语言和系统编程基础知识实现简单的ls命令

2025-04-22 20:37:17 1066

原创 二维前缀和与差分核心公式

如题,仅作笔记方便查阅

2024-12-09 21:44:42 457

原创 C语言链表基础

基础向,主要讲解关于链表这种数据结构的初始化和各种操作,适合小白快速上手或者作为笔记查阅。

2024-11-03 20:41:09 659

原创 C语言的文件操作

基础向,主要讲解c语言文件操作部分各函数使用方法,适合小白快速上手或者作为笔记查阅。

2024-10-23 21:55:09 1228 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除