[GitHub] 75+的 C# 数据结构和算法实现
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解决方案,它包含三个子项目:
Algorithms
: 一个类库项目。包含算法实现Data Structures
: 一个类库项目。包含数据结构实现UnitTest
:对算法和数据结构实现的测试项目
要求
.NET Core>=2.0
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# 数据结构和算法实现相关推荐
- GitHub 上值得前端学习的数据结构与算法项目
Hello,大家好,我是你们的 前端章鱼猫. 简介 前端章鱼猫从 2016 年加入 GitHub,到现在的 2020 年,快整整 5 个年头了. 相信很多人都没有逛 GitHub 的习惯,因此总会有开 ...
- 一般项目中哪里体现了数据结构_优秀程序员都应该学习的数据结构与算法项目(GitHub 开源清单)...
前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif ...
- 数据结构与算法 | 线性表 —— 链表
原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...
- 数据结构于算法—线性表
目录 前言 线性表基本架构 顺序表 插入 删除 其他操作 链表 基本结构 插入 带头节点与不带头节点 插入尾 删除 其他 代码实现 顺序表 链表 测试与结果 总结 原创公众号:bigsai 文章收藏在 ...
- 数据结构与算法笔记总结
学习资源推荐: 1.程序员面试.算法研究.编程艺术.红黑树.机器学习5大系列集锦 程序员面试.算法研究.编程艺术.红黑树.机器学习5大系列集锦_v_JULY_v的博客-CSDN博客 2.推荐!数据结构 ...
- 数据结构与算法——绪论
前言:数据结构与算法是计算机科学与工程的基础,它们的相互关系和作用是程序的本质.凭借一句话获得图灵奖的Pascal之父Nicklaus Wirth把它们表示为 算法+数据结构=程序 目录: 1.算法与 ...
- 【Java数据结构及算法实战】系列002:算法的四种描述方式
本节是<Java数据结构及算法实战>系列的第2节,主要介绍描述算法的常用的4种方式. 要定义一个算法,我们可以用自然语言.流程图.伪代码的方式描述解决某个问题的过程或是编写一段程序来实现这 ...
- Github标星86.4K+:常见数据结构与算法的Python实现
有人问我数据结构与算法怎么学? 免费的我推荐严蔚敏老师的数据结构课程,网上可以查到,当年考博士时候学的就是这个. 收费的我推荐王争老师的<数据结构与算法之美>,内容挺全面,学了应该对算法有 ...
- Github标星66.6k+:常见数据结构与算法的Python实现
有人问我数据结构与算法怎么学? 怎么用Python实现常见的数据结构算法?我找到一个github标星66.6k+的仓库,把各种常见算法用Python实现了,而且还有动图演示,非常值得推荐.(黄海广) ...
最新文章
- Matplotlib实例教程(九)热力图
- hdu5455(2015沈阳网络赛F题)
- 如何实现少样本学习?先让神经网络get√视觉比较能力
- SignalR 中丰富多彩的消息推送方式
- CF1404C:Fixed Point Removal(离线)(树状数组二分)
- 亚马逊面试有几轮_经过几个月的Google面试准备,我被亚马逊录用
- 利用自定义的 ClassLoader 加密 Java Class 文件
- Linux 启动、关闭、重启网络服务的两种方式
- linux 源码安装mysql 5.5
- android字符串点击事件,Android匹配字符串高亮并设置点击事件
- 去面试字节跳动,你最好有点心理准备!
- 从零开始研发GPS接收机连载——4、GPS模拟器数据采集验证
- FPS综述:植物次生代谢物与微生物组互作研究进展
- Excel实现行列转换的三种方式
- sublime license key
- 什么是DDOS攻击?怎么抵抗DDOS攻击?——世通兰陵王为你解说
- python二维表转一维表_【习题】一维表转二维表
- Docker(狂神说)笔记
- 每日一狗 · 比利牛斯山犬
- 基于c# asp.net电子病历管理系统的设计与实现