<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>逻辑与算法 on Jeanphilo Blog</title><link>https://shio-chan-dev.github.io/jeanblog/zh/categories/%E9%80%BB%E8%BE%91%E4%B8%8E%E7%AE%97%E6%B3%95/</link><description>Recent content in 逻辑与算法 on Jeanphilo Blog</description><generator>Hugo -- 0.159.2</generator><language>zh-cn</language><lastBuildDate>Fri, 20 Mar 2026 14:44:10 +0800</lastBuildDate><atom:link href="https://shio-chan-dev.github.io/jeanblog/zh/categories/%E9%80%BB%E8%BE%91%E4%B8%8E%E7%AE%97%E6%B3%95/index.xml" rel="self" type="application/rss+xml"/><item><title>先写骨架，再补细节：用契约拆解算法题与中型程序</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/skeleton-first-contract-driven-coding/</link><pubDate>Fri, 20 Mar 2026 14:44:10 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/skeleton-first-contract-driven-coding/</guid><description>把复杂程序拆成骨架、契约和原子状态变换：本文用 LRUCache、下单流程与反例解释为什么先写外部结构通常更稳，以及 helper 应该如何控制副作用。</description></item><item><title>手写一个基础消息代理：发布、订阅、重试与失败契约</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/basic-message-broker/</link><pubDate>Sat, 28 Feb 2026 11:03:15 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/basic-message-broker/</guid><description>从发布订阅到重试与失败契约，系统讲解基础消息代理的实现与工程边界。</description></item><item><title>图算法专题学习路径：从 BFS 到图计算模型</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/00-graph-algorithms-learning-path/</link><pubDate>Mon, 09 Feb 2026 10:14:45 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/00-graph-algorithms-learning-path/</guid><description>图算法专题导航与推荐阅读顺序，覆盖 BFS/DFS、可达性、最短路、CC/SCC、中心性、PageRank、社区发现、子图匹配、动态图、图分区与图计算模型。</description></item><item><title>图计算模型实战：Pregel（BSP）与 GAS，PageRank/CC/并行 BFS 怎么跑</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/110-graph-computation-models-pregel-gas-parallel-bfs/</link><pubDate>Mon, 09 Feb 2026 10:05:33 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/110-graph-computation-models-pregel-gas-parallel-bfs/</guid><description>围绕图计算模型给出工程化落地框架：Pregel 与 GAS 的核心抽象、同步语义、性能边界，以及 PageRank/CC/并行 BFS 的实现与选型。</description></item><item><title>图分区算法：Edge-cut vs Vertex-cut 与 METIS 工程解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/100-graph-partitioning-edge-cut-vertex-cut-metis/</link><pubDate>Mon, 09 Feb 2026 10:04:05 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/100-graph-partitioning-edge-cut-vertex-cut-metis/</guid><description>面向生产级图数据库的图分区实战文章，覆盖 Edge-cut 与 Vertex-cut 对比、METIS 核心流程、可运行示例和工程调优清单。</description></item><item><title>动态图与增量计算：增量最短路径、增量 PageRank、连通性维护 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/90-dynamic-graph-incremental-computation/</link><pubDate>Mon, 09 Feb 2026 10:00:28 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/90-dynamic-graph-incremental-computation/</guid><description>面向真实图系统，系统讲解动态图增量算法：增量最短路径、增量 PageRank、连通性维护。重点覆盖局部重算、延迟更新、近似结果三种工程必修技巧。</description></item><item><title>社区发现入门：Louvain 与 Label Propagation 的工程化选型 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/80-community-detection-louvain-label-propagation/</link><pubDate>Mon, 09 Feb 2026 09:59:58 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/80-community-detection-louvain-label-propagation/</guid><description>围绕社区发现的三类核心用途（群体识别、图分区、冷启动分析），系统讲解 Louvain 与 Label Propagation 的原理、复杂度、工程取舍与多语言可运行实现。</description></item><item><title>子图匹配 / 模式匹配：VF2 与 Ullmann 的工程化剪枝 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/70-subgraph-matching-vf2-ullmann-and-pruning/</link><pubDate>Mon, 09 Feb 2026 09:59:16 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/70-subgraph-matching-vf2-ullmann-and-pruning/</guid><description>系统讲解 Subgraph Isomorphism（NP-hard）与 VF2/Ullmann 核心思想，重点强调工程现实：受限模式查询与候选剪枝通常比算法名称本身更重要。</description></item><item><title>图中心性三件套：Degree、Betweenness、Closeness 工程 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/50-graph-centrality-degree-betweenness-closeness/</link><pubDate>Mon, 09 Feb 2026 09:56:11 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/50-graph-centrality-degree-betweenness-closeness/</guid><description>系统讲解图中心性三大指标：Degree、Betweenness、Closeness。重点给出工程可落地结论：大多数系统优先支持 Degree 和近似 Betweenness，并说明复杂度、近似策略与上线取舍。</description></item><item><title>PageRank / Personalized PageRank：图数据库节点重要性与增量更新 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/60-pagerank-and-personalized-pagerank/</link><pubDate>Mon, 09 Feb 2026 09:54:25 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/60-pagerank-and-personalized-pagerank/</guid><description>系统讲解 PageRank 与 Personalized PageRank：从迭代式计算、稀疏矩阵实现到增量更新策略，覆盖推荐与影响力分析等图数据库核心场景。</description></item><item><title>k-hop 与可达性查询：BFS 限制、Reachability 索引与 2-hop Labeling ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/30-k-hop-reachability-and-reach-index/</link><pubDate>Mon, 09 Feb 2026 09:52:17 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/30-k-hop-reachability-and-reach-index/</guid><description>围绕 k-hop 与可达性查询，系统讲解 BFS+hop 限制、为何一般不全算传递闭包、以及工程常用的位图索引/2-hop labeling 思路，并给出可运行多语言实现。</description></item><item><title>连通分量与强连通分量：Tarjan / Kosaraju 工程 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/40-connected-components-and-scc-tarjan-kosaraju/</link><pubDate>Mon, 09 Feb 2026 09:50:22 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/40-connected-components-and-scc-tarjan-kosaraju/</guid><description>系统讲解无向图 Connected Components 与有向图 SCC，重点覆盖 Tarjan（工程常用）与 Kosaraju，对应图数据库中的社区划分、子图切分与分片 hint。</description></item><item><title>最短路径三件套：BFS、Dijkstra、A* 工程实战 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/20-shortest-path-bfs-dijkstra-astar-acers/</link><pubDate>Mon, 09 Feb 2026 09:48:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/20-shortest-path-bfs-dijkstra-astar-acers/</guid><description>系统讲透最短路径三件套：无权图 BFS、非负权 Dijkstra、启发式 A*。覆盖多源 BFS、双向搜索、路径裁剪等工程优化，并附可运行代码与多语言模板。</description></item><item><title>BFS / DFS 工程入门：k-hop 查询、子图抽取与路径可达性 ACERS 解析</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/10-bfs-dfs-k-hop-subgraph-path-existence/</link><pubDate>Mon, 09 Feb 2026 09:44:11 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/graph/10-bfs-dfs-k-hop-subgraph-path-existence/</guid><description>围绕 k-hop 查询、子图抽取、路径可达性三类高频图任务，系统讲清 BFS/DFS 的迭代模板、early stop 剪枝与 visited bitmap/bloom 选型，并附多语言可运行实现。</description></item><item><title>从 REPL 到逆波兰计算器：一步步扩展交互程序</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/repl-to-rpn-calculator/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/repl-to-rpn-calculator/</guid><description>从最小可用 REPL 开始，逐步演化为逆波兰表达式计算器。</description></item><item><title>内存泄漏示例：为什么不释放会出问题</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/memory-leak-example/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/memory-leak-example/</guid><description>通过示例说明内存泄漏的成因与规避策略。</description></item><item><title>如何排序 10GB 文件：外部排序的工程方案</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/sort-10gb-file/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/sort-10gb-file/</guid><description>解释外部排序的流程、分块策略与磁盘 I/O 优化。</description></item><item><title>如何排序 10TB 数据：分布式排序思路</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/sort-10tb-data/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/sort-10tb-data/</guid><description>介绍大规模分布式排序的基本流程与工程考量。</description></item><item><title>如何设计磁盘碎片整理：目标、步骤与权衡</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/filesystem-defragmentation-design/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/filesystem-defragmentation-design/</guid><description>从工程角度设计碎片整理流程，并给出简化可运行示例。</description></item><item><title>实现 rnd()：从基础随机数到可控随机</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/implement-rnd-function/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/implement-rnd-function/</guid><description>解释随机数生成的基本思路，并用线性同余法实现一个简单 rnd()。</description></item><item><title>手写一个最小的垃圾回收器：标记-清除模型</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/simple-garbage-collector/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/simple-garbage-collector/</guid><description>用最小示例解释标记-清除 GC 的核心思路。</description></item><item><title>随机迷宫生成：深度优先回溯法</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/random-maze-generator/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/random-maze-generator/</guid><description>用深度优先回溯生成迷宫，并提供可运行示例。</description></item><item><title>随机生成不重复序列：洗牌法与采样法</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/random-unique-sequence/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/random-unique-sequence/</guid><description>解释如何生成不重复随机序列，并给出洗牌法实现。</description></item><item><title>尾递归阶乘：把递归变成可优化形式</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/tail-recursive-factorial/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/tail-recursive-factorial/</guid><description>通过尾递归形式实现阶乘，并讨论实际语言支持情况。</description></item><item><title>写一个基础 Web 服务器：最小可用实现</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/basic-web-server/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/basic-web-server/</guid><description>用最小可运行示例解释 HTTP 服务的核心流程。</description></item><item><title>用队列实现栈：单队列旋转法</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/queue-to-stack/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/queue-to-stack/</guid><description>解释如何用队列模拟栈，并给出可运行实现与复杂度分析。</description></item><item><title>用栈实现队列：双栈法的思路与实现</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/stack-to-queue/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/stack-to-queue/</guid><description>解释如何用两个栈模拟队列，并给出可运行实现与复杂度分析。</description></item><item><title>栈溢出示例：递归深度与调用栈的边界</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/stack-overflow-example/</link><pubDate>Sat, 24 Jan 2026 13:20:24 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/stack-overflow-example/</guid><description>展示栈溢出的典型示例，并解释成因与规避方法。</description></item></channel></rss>