标签:算法
共 2 篇文章
-
文本对比算法:LCS 与 Myers diff 的工程实践
系统讲解文本对比(diff)背后的两大算法:LCS(最长公共子序列)动态规划与 Myers diff 差异算法。从朴素 O(m×n) 到 Git 用的 O((m+n)·D) 优化,覆盖行级 vs 字符级 diff、统一 vs 分屏视图、相似度计算、超大文本性能边界等工程实践。结合在线文本对比工具实操,帮你理解 git diff 的底层逻辑。
-
SQL 格式化与 SQL 解析器设计:词法分析器、token 类型与缩进策略
系统讲解 SQL 格式化工具的实现原理:词法分析器(tokenizer)的状态机设计、9 种 token 类型(空白/注释/字符串/数字/标识符/关键字/标点/参数)、关键字分类策略(主子句/JOIN/AND-OR/函数/数据类型)、缩进引擎(depth 计数器 + 主子句归零 + 子查询递增)、CASE/WHEN 块状缩进、压缩算法、基础语法校验、关键字分色高亮。对比 6 种主流 SQL 美化器(sql-formatter/prettier-plugin-sql/DBeaver/DataGrip/Navicat/Azure Data Studio)的实现差异与功能边界。配套可交互 SQL 工具,帮你彻底搞懂 SQL 解析器设计。