Skip to content

Commit 37d4f21

Browse files
chore: automated publish
1 parent 5964031 commit 37d4f21

12 files changed

Lines changed: 7 additions & 15 deletions

File tree

public/blog/2025-04-01/index.pdf

-236 Bytes
Binary file not shown.

public/blog/2025-04-01/index.tex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
\author{"杨其臻"}
33
\date{"Apr 01, 2025"}
44
\maketitle
5-
\chapter{引言}
65
在系统编程领域,Zig 语言凭借其独特的显式内存管理、零成本抽象和强调确定性的设计理念,正在成为构建高性能应用的利器。本文聚焦于拓扑排序算法在 Zig 语言中的实现,并深入探讨其在并行任务调度中的创新应用。通过将传统的图论算法与现代并发模型相结合,我们能够构建出既保证执行顺序正确性,又充分挖掘硬件并行潜力的任务调度系统。\par
76
\chapter{拓扑排序基础}
87
拓扑排序是对有向无环图(DAG)进行线性排序的算法,其数学表达为:对于图中任意有向边 $(u, v)$,节点 $u$ 在排序结果中都出现在 $v$ 之前。形式化定义为给定图 $G=(V, E)$,求节点排列 $L = [v_1, v_2, ..., v_n]$,使得对于每条边 $(v_i, v_j) \in E$,都有 $i < j$\par
@@ -123,5 +122,4 @@ \chapter{进阶话题}
123122
在动态图场景下,传统的静态拓扑排序算法需要改进。我们提出增量维护算法:当新增边 $(u, v)$ 时,只需沿着v的后续节点传播更新。数学上,这可以形式化为:
124123
$$\Delta L = \text{TopoSort}(\{v\} \cup \text{Descendants}(v))$$
125124
其中 $\text{Descendants}(v)$ 表示 $v$ 的所有可达节点。Zig 的编译时反射机制可以优化该过程,通过 \verb!@TypeOf! 和 \verb!@hasField! 等编译时函数实现依赖关系的静态验证。\par
126-
\chapter{总结}
127125
本文展示了 Zig 语言在实现经典算法和构建并发系统方面的独特优势。通过将显式内存控制与现代化并发原语相结合,开发者能够创建出既保证正确性又具备高性能的任务调度系统。未来随着 Zig 标准库的进一步完善,其在分布式系统和异构计算领域的应用值得期待。\par

public/blog/2025-04-01/sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a80d4e4b18a9407537bfe38be2cac9c868fc625787bf87082768d100ec099d62
1+
ea51ff5e64b72d0ca4e7de9773baaf2b9e6ea276f7454b2607d4061b50ce0204

public/blog/2025-04-02/index.pdf

-1.14 KB
Binary file not shown.

public/blog/2025-04-02/index.tex

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
\title{"理解并实现基本的拓扑排序算法:从理论到代码实践"}
1+
\title{"理解并实现基本的拓扑排序算法"}
22
\author{"杨其臻"}
33
\date{"Apr 02, 2025"}
44
\maketitle
5-
\chapter{引言}
65
在计算机科学中,拓扑排序是一种解决依赖关系问题的关键算法。想象这样一个场景:大学选课时,某些课程需要先修课程。例如,学习「数据结构」前必须先修「程序设计基础」,这种依赖关系构成一个有向无环图(DAG)。拓扑排序的作用正是为这类依赖关系找到一种合理的执行顺序。本文将深入解析拓扑排序的核心原理,并通过 Python 代码实现两种经典算法。\par
76
\chapter{拓扑排序基础概念}
87
拓扑排序的定义是:对 DAG 的顶点进行线性排序,使得对于任意有向边 $u \to v$,顶点 $u$ 在排序中都出现在顶点 $v$ 之前。例如,若图中存在边 $A \to B$$B \to C$,则可能的排序之一是 $[A, B, C]$\par
@@ -147,7 +146,6 @@ \chapter{实际应用场景}
147146
\item \textbf{课程安排}:解决 LeetCode 210 题「课程表 II」的依赖问题。
148147
\item \textbf{任务调度}:管理具有前后依赖关系的任务执行顺序。
149148
\end{itemize}
150-
\chapter{总结与扩展}
151149
拓扑排序是处理依赖关系的核心算法。通过 Kahn 算法和 DFS 算法的对比,可根据实际需求选择实现方式。进一步学习可探索:\par
152150
\begin{enumerate}
153151
\item \textbf{强连通分量}:使用 Tarjan 算法识别图中的环。

public/blog/2025-04-02/sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a12dc9557c5828c41d0d3a5e30a522a710ed4d2761a890baa2ed6576db3ce792
1+
f134741f8d0cb6e3084fbac87732b1f2f3701b470dcb7b1eb5b72878fea181eb

public/blog/2025-04-03/index.pdf

-393 Bytes
Binary file not shown.

public/blog/2025-04-03/index.tex

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
\title{"用 Mermaid.js 提升技术文档的可视化能力:流程图与架构图实战指南"}
1+
\title{"用 Mermaid.js 提升技术文档的可视化能力"}
22
\author{"杨其臻"}
33
\date{"Apr 03, 2025"}
44
\maketitle
5-
\chapter{引言}
65
在软件开发领域,技术文档的可读性直接影响团队协作效率与知识传递效果。传统绘图工具如 Visio 或 Draw.io 虽然功能强大,但其二进制文件格式与代码仓库的文本特性存在天然隔阂。Mermaid.js 作为一款基于文本的图表生成库,通过将图表定义为可版本控制的代码,完美解决了文档与图表同步更新的难题。其 \verb!9.4KB! 的轻量化体积与 Markdown 原生支持特性,使其成为技术写作领域的颠覆性工具。\par
76
\chapter{第一部分:Mermaid.js 基础入门}
87
要在 Markdown 中启用 Mermaid.js 渲染,仅需添加以下 HTML 引用:\par
@@ -78,5 +77,4 @@ \chapter{第四部分:与其他工具的集成与自动化}
7877
\verb!-t! 参数指定主题样式,支持 \verb!default!、\verb!dark!、\verb!forest! 等多种预设,确保生成图表与文档主题风格一致。\par
7978
\chapter{第五部分:最佳实践与避坑指南}
8079
当遇到渲染异常时,可优先检查方向控制符是否冲突。例如在 \verb!flowchart! 类型中使用 \verb!graph TD! 声明会导致解析失败,正确写法应为 \verb!flowchart TB!。对于包含大量节点(超过 50 个)的复杂图表,建议启用 \verb!%%{init: {"flowchart": {"useMaxWidth": false}} }%%! 初始化指令禁用响应式布局以避免元素重叠。\par
81-
\chapter{结语}
8280
Mermaid.js 的生态正在加速进化,近期新增的饼图与用户体验地图支持,使其应用场景突破传统技术文档范畴。与 PlantUML 相比,Mermaid.js 的 JavaScript 原生特性使其更适配现代 Web 技术栈。建议读者从简单的 API 流程图开始实践,逐步将架构文档迁移到这套「代码即图表」的新范式。当团队所有成员都能通过 \verb!git diff! 直观查看图表变更时,技术协作将进入全新的维度。\par

public/blog/2025-04-03/sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ab38a16a307ed52ff220055e15cdf2019829036eb22d3726fb539b78948a91b7
1+
6302e53520bfda08fccdc00cec542e562688b2f964abe16517ede9f6b59e88a4

public/blog/2025-04-04/index.pdf

-665 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)