vlambda博客
学习文章列表

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


[GitHub] 75+的 C# 数据结构和算法实现DotNetCore学习站推荐搜索
DotNetCore学习站
C#进阶系列
WPF学习

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

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

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

— END —

        回复:新书   获取《ASP.NET Core 3框架揭秘》

        回复:进阶   获取 《CLR via C#(第4版)》购书链接

        回复:本质论   获取 《C# 7.0本质论》购书链接

        回复:WPF   获取 WPF 电子书