C#中标准数据结构和算法的即插即用类库项目

GitHub:https://github.com/aalhour/C-Sharp-Algorithms

Watch: 307  Star: 3.4k Fork: 910

                                      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的大量积极响应,并注意到一些GitHubers为它做出进一步贡献而感到兴奋之后,该项目的含义有所不同。因此,我决定继续对其进行维护,以作为C#中数据结构和算法实现以及这些主题下我自己的研究副项目的参考。

描述

解决方案层次结构

这是一个C#.NET解决方案,它包含三个子项目:

  1. Algorithms: 一个类库项目。包含算法实现

  2. Data Structures: 一个类库项目。包含数据结构实现

  3. UnitTest:对算法和数据结构实现的测试项目

要求

  1. .NET Core>=2.0

  2. XUnit

投稿者须知

如果你想为C#算法做出共享,请确保你首先查看贡献准则。

数据结构

Linear:

  • Skip List

  • Array List

  • Stack

  • Queue

  • Single-Linked List

  • Double-Linked List

Circlar:

  • Circular Buffer

Heaps:

  • Binary-Min Heap

  • Binary-Max Heap

  • Binomial-Min Heap

Priority Queues:

  • Min-Priority Queue

  • Key-value Priority Queue

Hashing Functions:

  • Prime Hashing Family

  • Universal Hashing Family

Hash Tables:

  • Chained Hash Table

  • Cuckoo Hash Table

  • Open-Addressing Hash Table

Sorted Collections(Tree-based):

  • Sorted List

  • Sorted Dictionary

Trees:

  • Basic Search Trees:

    • Map versions(Supports key-value pairing; nodes indexed by keys)

    • Binary Search Tree

    • (Augmented) Binary Search Tree

    • Ternary Search Tree

  • Self-Balancing Trees:

    • Map version(supports key-value pairing;nodes indexed by keys)

    • AVL Tree

    • B-Tree

    • Red-Black Tree

  • Prefix Trees:

    • Trie

    • Trie Map (associative prefix tree;complete words are keys to records)

Graphs:

  • Undirected Graphs:

    • Clique Graphs

    • Undirected Sparse Graph

    • Undirected Dense Graph

  • Undirected Weighted Graphs:

    • Undirected Weighted Sparse Graph

    • Undirected Weighted Dense Graph

  • Directed Graphs:

    • Directed Sparse Graph

    • Directed Dense Graph

  • Directed Weighted Graphs:

    • Directed Weighted Sparse Graph

    • Directed Weighted Dense Graph

算法

排序算法(Sorting):

  • Bubble Sort

  • Bucket Sort

  • BST Sort

  • Comb Sort

  • Counting Sort

  • Cycle Sort

  • Gnome Sort

  • Heap Sort

  • Insertion Sort

  • LSD Radix Sort

  • Merge Sort

  • Selection Sort

  • Shell Sort

  • OddEven Sort

  • PigeonHole Sort

  • Quick Sort

Searching:

  • Binary Search

Graphs:

  • Graph Search:

    • Depth-Frist Searcher

    • Breadth-First Searcher

  • Shortest Paths:

    • Breadth-First SPs

    • Bellman-Ford SPs

    • Dijkstra SPs

    • Dijkstra All-Pairs SPs

  • DFS Applications:

    • Cycles Detector

    • Topological Sorter

  • BFS Applications:

    • Connected Components

    • Biparite Graphs Coloring

Tree:

  • Resursive Binary Tree Walker

    • Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder & Postorder

Strings:

  • Permutations and Anagrams

  • Edit Distance

    • Uses a generic custom class for passing costs: EditDistanceCostsMap

Numeric:

  • Binomial Coefficients

  • Catalan Numbers

  • Greatest Common Divisor

Visualization:

  • Tree Drawer

— END —

[GitHub] 75+的 C# 数据结构和算法实现相关推荐

  1. GitHub 上值得前端学习的数据结构与算法项目

    Hello,大家好,我是你们的 前端章鱼猫. 简介 前端章鱼猫从 2016 年加入 GitHub,到现在的 2020 年,快整整 5 个年头了. 相信很多人都没有逛 GitHub 的习惯,因此总会有开 ...

  2. 一般项目中哪里体现了数据结构_优秀程序员都应该学习的数据结构与算法项目(GitHub 开源清单)...

    前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif ...

  3. 数据结构与算法 | 线性表 —— 链表

    原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...

  4. 数据结构于算法—线性表

    目录 前言 线性表基本架构 顺序表 插入 删除 其他操作 链表 基本结构 插入 带头节点与不带头节点 插入尾 删除 其他 代码实现 顺序表 链表 测试与结果 总结 原创公众号:bigsai 文章收藏在 ...

  5. 数据结构与算法笔记总结

    学习资源推荐: 1.程序员面试.算法研究.编程艺术.红黑树.机器学习5大系列集锦 程序员面试.算法研究.编程艺术.红黑树.机器学习5大系列集锦_v_JULY_v的博客-CSDN博客 2.推荐!数据结构 ...

  6. 数据结构与算法——绪论

    前言:数据结构与算法是计算机科学与工程的基础,它们的相互关系和作用是程序的本质.凭借一句话获得图灵奖的Pascal之父Nicklaus Wirth把它们表示为 算法+数据结构=程序 目录: 1.算法与 ...

  7. 【Java数据结构及算法实战】系列002:算法的四种描述方式

    本节是<Java数据结构及算法实战>系列的第2节,主要介绍描述算法的常用的4种方式. 要定义一个算法,我们可以用自然语言.流程图.伪代码的方式描述解决某个问题的过程或是编写一段程序来实现这 ...

  8. Github标星86.4K+:常见数据结构与算法的Python实现

    有人问我数据结构与算法怎么学? 免费的我推荐严蔚敏老师的数据结构课程,网上可以查到,当年考博士时候学的就是这个. 收费的我推荐王争老师的<数据结构与算法之美>,内容挺全面,学了应该对算法有 ...

  9. Github标星66.6k+:常见数据结构与算法的Python实现

    有人问我数据结构与算法怎么学? 怎么用Python实现常见的数据结构算法?我找到一个github标星66.6k+的仓库,把各种常见算法用Python实现了,而且还有动图演示,非常值得推荐.(黄海广) ...

最新文章

  1. Matplotlib实例教程(九)热力图
  2. hdu5455(2015沈阳网络赛F题)
  3. 如何实现少样本学习?先让神经网络get√视觉比较能力
  4. SignalR 中丰富多彩的消息推送方式
  5. CF1404C:Fixed Point Removal(离线)(树状数组二分)
  6. 亚马逊面试有几轮_经过几个月的Google面试准备,我被亚马逊录用
  7. 利用自定义的 ClassLoader 加密 Java Class 文件
  8. Linux 启动、关闭、重启网络服务的两种方式
  9. linux 源码安装mysql 5.5
  10. android字符串点击事件,Android匹配字符串高亮并设置点击事件
  11. 去面试字节跳动,你最好有点心理准备!
  12. 从零开始研发GPS接收机连载——4、GPS模拟器数据采集验证
  13. FPS综述:植物次生代谢物与微生物组互作研究进展
  14. Excel实现行列转换的三种方式
  15. sublime license key
  16. 什么是DDOS攻击?怎么抵抗DDOS攻击?——世通兰陵王为你解说
  17. python二维表转一维表_【习题】一维表转二维表
  18. Docker(狂神说)笔记
  19. 每日一狗 · 比利牛斯山犬
  20. 基于c# asp.net电子病历管理系统的设计与实现

热门文章

  1. BootStrap导航栏的使用
  2. 项目手札2---关于分页显示时地址栏的风格
  3. 生活随笔:大学需要确立自己的方向
  4. pl/sql 中关于exception的学习笔记
  5. 向Ubuntu提供反馈的5种方法
  6. apple tv 开发_如何跨多台Apple TV同步Apple TV的主屏幕
  7. gfi截图_GFI Backup Home Edition是Windows的免费数据备份实用程序
  8. PHP 7.2 新功能介绍
  9. Windows 7 下右键发送到菜单项没了
  10. 使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本