o---o | |
/ --O---O--
O | |
\\ --O---O--
o---o | |
O o o--o o--o o---o o-O-o o--O--o o o o o o--o
/ \\ | o o o | | | | | | |\\ /| |
o---o | | o-o | | O--Oo | | O---O | \\o/ | o--o
| | | o | o o | \\ | | | | | | |
o o O---o o--o o--o o \\o o-O-o o o o o o o---o
什么是C#算法?
用C#编写的结构和算法的类图书馆项目。它包含75个以上的数据结构和算法,设计为面向对象的孤立组件。即使该项目是出于教育目的开始的,但所赋予的数据结构和算法是标准,高效,稳定和测试的。
背景故事
该项目最初是作为面试准备项目开始的。但是,在收到Reddit的大量积极反应之后,并注意到一些Githuber的兴奋以进一步做出贡献后,该项目具有不同的含义。因此,我决定继续将其保留为C#中数据结构和算法实现的参考,以及我自己的研究副作用。
描述
解决方案层次结构:
这是一个C#.NET解决方案项目,它包含三个子标题:
- 算法:类库项目。包含算法实施
- 数据结构:类库项目。包含数据结构的实施
- Unitest:算法和数据结构的单位测试项目
要求:
- .NET CORE> = 2.0
- Xunit
贡献者的注释:
如果您想为C#算法做出贡献,请让您首先查看贡献指南。
数据结构
线性:
- 跳过列表
- 列表数组
- 堆
- 队列
- 单连接列表
- 双连接列表
圆:
- 缓冲圆圈
堆:
- 二进制我的堆
- 二进制最大堆
- 二项式-NI堆
优先队列:
- 最高优先级队列
- 键值优先级队列
哈希功能:
- 主要哈希家庭
- 普遍哈希家庭
哈希表:
- 链条桌
- 杜鹃的桌子
- 开放式哈希表
运气收藏(基于树):
- 运气清单
- 运气词典
树:
- 基本搜索树:
- 二进制搜索树
- 地图版本(支持键值配对;按键索引的节点)
- (增强)二进制搜索树
- 三元搜索树
- 二进制搜索树
- 自平衡树:
- AVL树
- b-prit
- 红黑树
- 地图版本(支持键值配对;按键索引的节点)
- 前缀树:
- 特里
- 关联前缀树;完整的单词是记录的关键)
图:
- 无向图:
- 单击图
- 无方向的稀疏图
- 无向密度图
- 无方向的加权图:
- 无方向的加权稀疏图
- 无方向的致密图
- 定向图:
- 定向稀疏图
- 定向密集图
- 定向加权图:
- 定向加权稀疏图
- 定向加权密集图
算法
排序:
- 气泡排序
- 水桶排序
- BST排序
- 梳子排序
- 计数排序
- 周期排序
- 侏儒排序
- 堆排序
- 插入排序
- LSD radix排序
- 合并排序
- 选择排序
- 外壳排序
- 奇数
- 鸽洞排序
- 快速排序
搜索:
- 二进制搜索
图:
- 图形搜索:
- 深度优先搜索器
- 广度优先的搜索器
- 最短的路径:
- 广度优先级别
- Bellman-Ford SPS
- Dijkstra sps
- Dijkstra All-Pairs sps
- DFS应用程序:
- 周期探测器
- 拓扑s刺
- BFS应用程序:
- 连接的组件
- 两分图的着色
树:
- 重复出现的二进制树步行者
- 方法:printall,foreach,包含和二进制搜索。遍历模式:预订,内和邮政
字符串:
- 排列和字符
- 编辑距离
- 使用通用自定义类来通过成本:editdistancecostsmap <t>
数字:
- 二项式系数
- 加泰罗尼亚人数
- 最伟大的常见除数
可视化:
- 树抽屉
贡献者
执照
该项目已根据MIT许可获得许可。
