Skip to content

算法篇去留清单 ​

判据只有两条:与 Go 语言学习主线强相关(goroutine/channel/接口/泛型在数据结构里的典型运用),或高频实用(排序/查找/二叉树/堆/图遍历这类基础件)。两条都不占的,删。

结果:现存 103 页,保留 47,删除 56。删除篇目从 SUMMARY、侧边栏与磁盘一并清掉,不留残骸;保留篇目补齐实现与复杂度说明(见文末「补全记录」)。

保留(47 篇) ​

页面判据
arrary/array.md数组篇索引(现状在拼错目录 arrary/,随本次清理改到 array/Array.md)
array/CircularBuffer.md环形缓冲区,生产者-消费者常用结构
array/DoubleEndedQueue.md双端队列,10 个操作的完整实现
array/DynamicArray.mdGo 切片语义(扩容/共享底层数组)
array/MultidimensionalArray.md多维数组与切片
array/PriorityQueue.md优先队列,Go 自带 container/heap
array/SparseArray.md稀疏数组,节省空间的常见手法
hash/Hash.md哈希表概念与 Go map
list/DynamicArray.md手写动态数组,扩容与切片运用
list/HashLinkedList.md哈希+链表组合,LRU 的实现基础
list/Queue.md链表实现的队列,与 queue 篇互补
list/SinglyLinkedList.md单链表基础
list/SkipList.md跳表,Redis zset 底层结构
list/Stack.md链表实现的栈,与 stack 篇互补
list/list.md链表篇索引
queue/Queue.md环形队列实现
sort/BubbleSort.md基础比较排序,教学起点
sort/BucketSort.md非比较排序代表,均匀分布 $O(n)$
sort/CocktailSort.md双向冒泡,冒泡的常见改进
sort/CountingSort.md非比较排序代表,$O(n+k)$
sort/HeapSort.md堆的应用,与堆篇联动
sort/InsertionSort.md基础比较排序,有序数据 $O(n)$
sort/MergeSort.md分治代表,稳定 $O(n\log n)$
sort/QuickSort.md平均最快的比较排序,主元/分区思想
sort/RadixSort.md非比较排序代表,按位处理
sort/SelectionSort.md基础比较排序
sort/ShellSort.md希尔排序,插入排序的间隔改进,理解预排序
sort/Sort.md排序篇索引与复杂度对比表
sort/StableSort.md稳定性概念与多字段排序
sort/TimSort.md工业级稳定排序(Python/Java 标准库),归并+插入的组合
stack/Stack.md切片实现的栈+括号匹配示例
tree/AVLTree.md平衡树代表,旋转操作
tree/B+Tree.md数据库索引的主流结构
tree/BTree.md磁盘/数据库索引结构
tree/BinaryHeap.md二叉堆的数组实现与建堆
tree/BinarySearchTree.md查找树基础,$O(\log n)$ 查找
tree/BinaryTree.md二叉树与遍历基础
tree/CompleteBinaryTree.md完全二叉树是堆的结构前提
tree/FenwickTree.md树状数组,区间统计的轻量实现
tree/FullBinaryTree.md满二叉树定义与性质
tree/Heap.md堆的概念与通用操作
tree/HuffmanTree.md压缩编码基础,与压缩篇联动
tree/MinimumSpanningTree.md图算法基础件(Kruskal/Prim)
tree/PrefixTree.mdTrie,前缀匹配高频实用
tree/RedBlackTree.mdmap 与标准库的底层结构,高频面试
tree/SegmentTree.md区间查询/更新基础件
tree/Tree.md树篇索引

删除(56 篇) ​

页面理由
list/CircularBuffer.md环形缓冲区是数组结构,array/CircularBuffer 保留,本篇删(链表篇下的错位重复)
list/DoubleEndedQueue.md与 array/DoubleEndedQueue 重复(本篇 6 个操作,数组版 10 个更完整)
list/StaticLinkedList.md静态链表(游标实现),教材遗留内容,Go 里无使用场景
sort/Batcher'sOddEvenMergeSort.md排序网络,与 OddEvenMergeSort 同一算法两篇,冷门
sort/BeadSort.md珠排序,玩具算法,依赖并行硬件假设
sort/BidirectionalBubbleSort.md即鸡尾酒排序,与 CocktailSort 重复(本篇自认别名)
sort/BinaryInsertionSort.md真实但冷门,插入排序的小改进,教学增量有限
sort/BitmapSort.md冷门/重复
sort/BitwiseSort.md内容即基数排序的按位版,与 RadixSort 重复,且代码编译不过
sort/BogoSort.md玩笑算法,平均 $O((n+1)!)$,无实用价值
sort/BozoSort.md玩笑算法
sort/BridgeSort.md非标准算法,原文自述「不是标准的排序算法」
sort/CatalanSort.md按卡塔兰数映射排序,理论玩具,原文自述不常见
sort/CombSort.md真实但冷门,冒泡的间隔改进(与希尔思想重复)
sort/CycleSort.md真实但冷门,唯一卖点是移动次数最少
sort/DistributionSort.md分配排序概念统称页,与桶/基数/计数三篇重复
sort/DualPivotQuickSort.md双基快排,Java 标准库内部实现,Go 主线弱相关
sort/FlashSort.md真实但冷门,直方图 flash 排序
sort/GnomeSort.md真实但冷门,与插入排序等价
sort/GroupSort.md非标准算法,原文自述「不是一个标准的算法名称」
sort/IntervalTreeSort.md非标准命名
sort/LayeredQuickSort.md自造变体,分块排序+归并
sort/LibrarySort.md真实但冷门,库排序
sort/MonkeySort.md玩笑算法,与 BogoSort 同类
sort/OddEvenMergeSort.md排序网络,Batcher 算法,冷门(与另一篇重复,两篇均删)
sort/OddEvenSort.md奇偶排序,串行下无优势
sort/OrderTreeSort.md即 TreeSort(BST 插入+中序),重复且非标准命名
sort/PancakeSort.md煎饼排序,翻转技巧题,冷门
sort/ParabolicSort.md原文自述「并不常见」,非真实算法
sort/ParallelHeapSort.md并行堆排序,炫技
sort/PigeonholeSort.md与计数排序等价,计数排序篇已覆盖
sort/RebuildSort.md原文自述「假想的算法」——虚构
sort/RippleSort.md非标准命名,冷门
sort/SleepSort.md睡眠排序,玩笑算法(靠 goroutine 睡眠时序,不可靠)
sort/SmoothSort.md真实但冷门,自适应堆排序,SUMMARY 里还重复登记了两次
sort/StoogeSort.md教学反面示例,比冒泡还慢
sort/StrandSort.mdSUMMARY 误名「裸基数排序」,真实名 Strand sort,冷门
sort/TreeSort.mdBST 排序,树篇已覆盖 BST,冷门
tree/BalancedBinaryTree.md平衡二叉树概念,与 AVLTree 重复
tree/BinarySearchHeap.md非标准结构(查无此名)
tree/CartesianTree.md笛卡尔树,冷门
tree/DynamicTree.md动态树(LCT),竞赛向,冷门
tree/ExpressionTree.md表达式树,编译原理向,冷门
tree/FibonacciHeap.md斐波那契堆,理论价值高工程几乎不用
tree/ImplicitSegmentTree.md线段树的变体,SegmentTree 已覆盖
tree/K-DimensionalTree.mdK-D 树,空间划分,冷门
tree/LinkTree.mdLink/Cut Tree,竞赛向,冷门
tree/MaximumSpanningTree.mdKruskal 的镜像(降序),一句话可代,独立成篇冗余
tree/Octree.md八叉树,空间划分,冷门
tree/Quadtree.md四叉树,空间划分,冷门
tree/RangeTree.md区间树,冷门(区间查询已由线段树/树状数组覆盖)
tree/SplayTree.md伸展树,冷门
tree/SuffixArray.md后缀数组,字符串高级专题,冷门
tree/SuffixTree.md后缀树,字符串高级专题,冷门
tree/Treap.md树堆,平衡树的随机化实现,AVL/红黑树已代表平衡树
tree/TreeHeap.md即 Treap 的 split/merge 实现,与 Treap 篇重复,两篇均删

未成篇章节 ​

SUMMARY 里的图、搜索、分治、回溯、动态规划、贪心六节是空链接(无页面)。它们不属于「现存算法盘点」,本次不补写;其中图遍历属判据点名的基础件,建议后续单独成篇(BFS/DFS 邻接表实现)。

补全记录(保留篇) ​

保留篇的验收标准:每个代码块单独 go build + go run 通过,含可运行示例与复杂度说明。盘点实测 47 页 49 个代码块全部通过。过程中修了两处编不过的示例:hash/Hash 的取值演示声明了未使用的变量,改成 comma-ok 惯用法;sort/HeapSort 把拆成两块的函数片段合并为一块。给缺复杂度说明的 5 篇补了复杂度一节:array/DoubleEndedQueue、array/DynamicArray、array/MultidimensionalArray、array/PriorityQueue、tree/BinaryTree。

Hello Golang