algorithmslisted
Install: claude install-skill omeyang/Thoth
# 算法与数据结构专家
解决算法问题:$ARGUMENTS
## 时间复杂度速查
| 复杂度 | 名称 | 示例 |
|--------|------|------|
| O(1) | 常数 | 哈希表查找、数组索引访问 |
| O(log n) | 对数 | 二分查找、平衡树操作 |
| O(n) | 线性 | 遍历数组、链表 |
| O(n log n) | 线性对数 | 快速排序、归并排序 |
| O(n²) | 平方 | 冒泡排序、嵌套循环 |
| O(2^n) | 指数 | 递归斐波那契、子集枚举 |
## 排序算法
- **快速排序** `QuickSort[T cmp.Ordered](arr []T)` - 原地排序,平均 O(n log n),基于分区
- **归并排序** `MergeSort[T cmp.Ordered](arr []T) []T` - 稳定排序,O(n log n),需要额外空间
- **堆排序** `HeapSort[T cmp.Ordered](arr []T)` - 原地排序,O(n log n),构建最大堆后逐个提取
## 查找算法
- **二分查找** `BinarySearch[T cmp.Ordered](arr []T, target T) int` - O(log n),有序数组精确查找
- **LowerBound** `LowerBound[T cmp.Ordered](arr []T, target T) int` - 查找第一个 >= target 的位置
- **UpperBound** `UpperBound[T cmp.Ordered](arr []T, target T) int` - 查找第一个 > target 的位置
## 数据结构
- **链表** `ListNode[T any]` - 反转链表 `ReverseList`、检测环 `HasCycle`、找环入口 `DetectCycle`
- **栈** `Stack[T any]` - Push/Pop/Peek,单调栈 `NextGreaterElement`
- **堆/优先队列** `MinHeap` 实现 `heap.Interface`,TopK 问题
- **Trie(前缀树)** - Insert/Search/StartsWith,前缀匹配查询
- **并查集** `UnionFind` - Find(路径压缩)、Union(按秩合并)、Connected
## 图算法
- **BFS** `BFS(graph map[int][]int, start int) []int` - 层序遍历,最短路径(无权图)
- **DFS** `DFS(graph map[int][]int, start int, visited map[int]bool) []int` - 深度优先递归遍历
- **Dijkstra** `Dijkstra(graph map[int][]Edge, start int, n int) []int` - 单源最短路径(带权图)
- **拓扑排序** `TopologicalSort(graph map[int][]int, n int) ([]int, bool)` - DAG 依赖排序,检测环
## 动态规划
- **0-1 背包** `Knapsack01(weights, values []int, capacity int) int` -