C Sharp Algorithms

C#源码 2025-08-13

                                          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解决方案项目,它包含三个子标题:

  1. 算法:类库项目。包含算法实施
  2. 数据结构:类库项目。包含数据结构的实施
  3. Unitest:算法和数据结构的单位测试项目

要求:

  1. .NET CORE> = 2.0
  2. Xunit

贡献者的注释:

如果您想为C#算法做出贡献,请让您首先查看贡献指南。

数据结构

线性:

  • 跳过列表
  • 列表数组
  • 队列
  • 单连接列表
  • 双连接列表

圆:

  • 缓冲圆圈

堆:

  • 二进制我的堆
  • 二进制最大堆
  • 二项式-NI堆

优先队列:

  • 最高优先级队列
  • 键值优先级队列

哈希功能:

  • 主要哈希家庭
  • 普遍哈希家庭

哈希表:

  • 链条桌
  • 杜鹃的桌子
  • 开放式哈希表

运气收藏(基于树):

  • 运气清单
  • 运气词典

树:

  • 基本搜索树:
    • 二进制搜索树
      • 地图版本(支持键值配对;按键索引的节点)
    • (增强)二进制搜索树
    • 三元搜索树
  • 自平衡树:
    • AVL树
    • b-prit
    • 红黑树
      • 地图版本(支持键值配对;按键索引的节点)
  • 前缀树:
    • 特里
    • 关联前缀树;完整的单词是记录的关键)

图:

  • 无向图:
    • 单击图
    • 无方向的稀疏图
    • 无向密度图
  • 无方向的加权图:
    • 无方向的加权稀疏图
    • 无方向的致密图
  • 定向图:
    • 定向稀疏图
    • 定向密集图
  • 定向加权图:
    • 定向加权稀疏图
    • 定向加权密集图

算法

排序:

  • 气泡排序
  • 水桶排序
  • BST排序
  • 梳子排序
  • 计数排序
  • 周期排序
  • 侏儒排序
  • 堆排序
  • 插入排序
  • LSD radix排序
  • 合并排序
  • 选择排序
  • 外壳排序
  • 奇数
  • 鸽洞排序
  • 快速排序

搜索:

  • 二进制搜索

图:

  • 图形搜索:
    • 深度优先搜索器
    • 广度优先的搜索器
  • 最短的路径:
    • 广度优先级别
    • Bellman-Ford SPS
    • Dijkstra sps
    • Dijkstra All-Pairs sps
  • DFS应用程序:
    • 周期探测器
    • 拓扑s刺
  • BFS应用程序:
    • 连接的组件
    • 两分图的着色

树:

  • 重复出现的二进制树步行者
    • 方法:printall,foreach,包含和二进制搜索。遍历模式:预订,内和邮政

字符串:

  • 排列和字符
  • 编辑距离
    • 使用通用自定义类来通过成本:editdistancecostsmap

数字:

  • 二项式系数
  • 加泰罗尼亚人数
  • 最伟大的常见除数

可视化:

  • 树抽屉

贡献者


执照

该项目已根据MIT许可获得许可。

下载源码

通过命令行克隆项目:

git clone https://github.com/aalhour/C-Sharp-Algorithms.git