用 Go 实现基础数据结构和算法,尽量使之能用于生产环境。一些常用的算法和数据结构,Go的标准库是更好的选择;比如:排序,双向链表。
排序算法实现尽量保持和标准库排序接口一致。包括:
- 冒泡排序(bubble)
- 选择排序(selectionn)
- 插入排序(insertion)
- 希尔排序(shell)
- 归并排序(merge)
- 堆排序(heap)
- 快速排序(quick)
- 内省排序(intro)
- 计数排序(counting)
- 基数排序(radix)
- 桶排序(bucket)
用于查找第 i 个顺序统计量(order statistic)是该集合中第 i 小的元素
- 最大最小值(stat/minmax)
- 选择第 i 小元素(stat/select)
- 栈(stack)
- 队列(queue)
- 单向链表(list/single)
- 双向链表(list/doubly)
- 跳跃链表(list/skip)
- 无限制分支有根树(tree/unbounded)
- 朴素前缀树(trie/simple)
- 压缩前缀树(trie/compress)
- Critbit 前缀树(trie/critbit)
- 三分前缀树(trie/ternary)
- double-array 前缀树(trie/darts)