{"id":19361442,"url":"https://github.com/kansiris/c-sharp-algorithms","last_synced_at":"2025-10-09T12:35:04.699Z","repository":{"id":106184714,"uuid":"204618240","full_name":"kansiris/C-Sharp-Algorithms","owner":"kansiris","description":"C-Sharp-Algorithms","archived":false,"fork":false,"pushed_at":"2019-08-27T04:17:47.000Z","size":1204,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T22:06:05.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kansiris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-27T04:16:27.000Z","updated_at":"2024-07-30T22:07:52.000Z","dependencies_parsed_at":"2023-06-16T01:15:16.896Z","dependency_job_id":null,"html_url":"https://github.com/kansiris/C-Sharp-Algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kansiris/C-Sharp-Algorithms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kansiris%2FC-Sharp-Algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kansiris%2FC-Sharp-Algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kansiris%2FC-Sharp-Algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kansiris%2FC-Sharp-Algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kansiris","download_url":"https://codeload.github.com/kansiris/C-Sharp-Algorithms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kansiris%2FC-Sharp-Algorithms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001435,"owners_count":26083078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:23:16.634Z","updated_at":"2025-10-09T12:35:04.682Z","avatar_url":"https://github.com/kansiris.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C# ALGORITHMS [![Build Status](https://travis-ci.org/aalhour/C-Sharp-Algorithms.svg?branch=master)](https://travis-ci.org/aalhour/C-Sharp-Algorithms)\n\nA C# plug-and-play class-library project of standard Data Structures and Algorithms. It contains 35+ Data Structures and 30+ Algorithms designed as Object-Oriented isolated components. Even though this project started for educational purposes, the implemented Data Structures and Algorithms are standard, efficient, stable and tested.\n\n## DESCRIPTION\n\nThis project originally started out as an interview preparation project. However, after receiving a great amount of positive responses on [reddit](https://redd.it/3etf9f), and noticing excitement from a few [GitHubers](https://github.com/aalhour/C-Sharp-Algorithms/graphs/contributors) to contribute furthermore to it, the project took on a different meaning. So, I decided to keep maintaining it as a reference for data structures and algorithm implementations in C# as well as my own research side-project under these topics.\n\n#### Solution Hierarchy:\n\nThis is a C#.NET solution-project, and it contains three subprojects:\n\n  1. [Algorithms](Algorithms): A class library project. Contains the Algorithms implementations.\n  2. [Data Structures](DataStructures): A class library project. Contains the Data Structures implementations.\n  3. [UnitTest](UnitTest): Unit-testing project for the Algorithms and Data Structures.\n\n#### Requirements:\n  1. .NET Core \u003e= 2.0\n  2. XUnit\n\n#### A Note to Contributors:\nIf you wish to contribute to C# ALGORITHMS, then please make sure you check out the [Contribution Guidelines](CONTRIBUTING.md) first.\n\nNote: The projects where tested with Visual Studio Community using .NET Core 2.0.3 on OSX 10.\n\n\n## DATA STRUCTURES\n\n#### Lists:\n  * [Skip List](DataStructures/Lists/SkipList.cs).\n  * [Array List](DataStructures/Lists/ArrayList.cs).\n  * [Stack](DataStructures/Lists/Stack.cs).\n  * [Queue](DataStructures/Lists/Queue.cs).\n  * [Single-Linked List](DataStructures/Lists/SLinkedList.cs).\n  * [Double-Linked List](DataStructures/Lists/DLinkedList.cs).\n\n#### Heaps:\n  * [Binary-Min Heap](DataStructures/Heaps/BinaryMinHeap.cs).\n  * [Binary-Max Heap](DataStructures/Heaps/BinaryMaxHeap.cs).\n  * [Binomial-Min Heap](DataStructures/Heaps/BinomialMinHeap.cs).\n \n#### Priority Queues:\n  * [Min-Priority Queue](DataStructures/Heaps/MinPriorityQueue.cs).\n  * [Keyed Priority Queue](DataStructures/Heaps/KeyedPriorityQueue.cs).\n \n#### Hashing Functions:\n  * [Prime Hashing Family](DataStructures/Hashing/PrimeHashingFamily.cs).\n  * [Universal Hashing Family](DataStructures/Hashing/UniversalHashingFamily.cs).\n\n#### Hash Tables:\n  * [Chained Hash Table](DataStructures/Dictionaries/ChainedHashTable.cs).\n  * [Cuckoo Hash Table](DataStructures/Dictionaries/CuckooHashTable.cs).\n  * [Open-Addressing Hash Table](DataStructures/Dictionaries/OpenAddressingHashTable.cs).\n\n#### Sorted Collections (Tree-based):\n  * [Sorted List](DataStructures/SortedCollections/SortedList.cs).\n  * [Sorted Dictionary](DataStructures/SortedCollections/SortedDictionary.cs).\n\n#### Trees:\n  * [Trie](DataStructures/Trees/Trie.cs).\n  * [Trie Map](DataStructures/Trees/TrieMap.cs).\n  * [AVL Tree](DataStructures/Trees/AVLTree.cs).\n  * [Red-Black Tree](DataStructures/Trees/RedBlackTree.cs).\n    * [Map version](DataStructures/Trees/RedBlackTreeMap.cs). Supports key-value pairs nodes; indexes nodes by keys.\n  * [Binary Search Tree](DataStructures/Trees/BinarySearchTree.cs).\n    * [Map version](DataStructures/Trees/BinarySearchTreeMap.cs). Supports key-value pairs nodes; indexes nodes by keys.\n  * [Augmented Binary Search Tree](DataStructures/Trees/AugmentedBinarySearchTree.cs).\n \n#### Graphs:\n  * Undirected Graphs:\n    + [Clique Graphs](DataStructures/Graphs/CliqueGraph.cs).\n    + [Undirected Sparse Graph](DataStructures/Graphs/UndirectedSparseGraph.cs).\n    + [Undirected Dense Graph](DataStructures/Graphs/UndirectedDenseGraph.cs).\n  * Undirected Weighted Graphs:\n    + [Undirected Weighted Sparse Graph](DataStructures/Graphs/UndirectedWeightedSparseGraph.cs).\n    + [Undirected Weighted Dense Graph](DataStructures/Graphs/UndirectedWeightedDenseGraph.cs).\n  * Directed Graphs:\n    + [Directed Sparse Graph](DataStructures/Graphs/DirectedSparseGraph.cs).\n    + [Directed Dense Graph](DataStructures/Graphs/DirectedDenseGraph.cs).\n  * Directed Weighted Graphs:\n    + [Directed Weighted Sparse Graph](DataStructures/Graphs/DirectedWeightedSparseGraph.cs).\n    + [Directed Weighted Dense Graph](DataStructures/Graphs/DirectedWeightedDenseGraph.cs).\n\n\n## ALGORITHMS\n\n#### Sorting:\n  * [Bubble Sort](Algorithms/Sorting/BubbleSorter.cs).\n  * [Bucket Sort](Algorithms/Sorting/BucketSorter.cs).\n  * [BST Sort](Algorithms/Sorting/BinarySearchTreeSorter.cs).\n  * [Comb Sort](Algorithms/Sorting/CombSorter.cs).\n  * [Counting Sort](Algorithms/Sorting/CountingSorter.cs).\n  * [Cycle Sort](Algorithms/Sorting/CycleSorter.cs).\n  * [Gnome Sort](Algorithms/Sorting/GnomeSorter.cs).\n  * [Heap Sort](Algorithms/Sorting/HeapSorter.cs).\n  * [Insertion Sort](Algorithms/Sorting/InsertionSorter.cs).\n  * [LSD Radix Sort](Algorithms/Sorting/LSDRadixSorter.cs).\n  * [Merge Sort](Algorithms/Sorting/MergeSorter.cs).\n  * [Selection Sort](Algorithms/Sorting/SelectionSorter.cs).\n  * [Shell Sort](Algorithms/Sorting/ShellSorter.cs).\n  * [OddEven Sort](Algorithms/Sorting/OddEvenSorter.cs).\n  * [PigeonHole Sort](Algorithms/Sorting/PigeonHoleSorter.cs).\n  * [Quick Sort](Algorithms/Sorting/QuickSorter.cs).\n\n#### Graphs:\n  * Graph Search:\n    + [Depth-First Searcher](Algorithms/Graphs/DepthFirstSearcher.cs).\n    + [Breadth-First Searcher](Algorithms/Graphs/BreadthFirstSearcher.cs).\n  * Shortest Paths:\n    + [Breadth-First SPs](Algorithms/Graphs/BreadthFirstShortestPaths.cs).\n    + [Bellman-Ford SPs](Algorithms/Graphs/BellmanFordShortestPaths.cs).\n    + [Dijkstra SPs](Algorithms/Graphs/DijkstraShortestPaths.cs).\n    + [Dijkstra All-Pairs SPs](Algorithms/Graphs/DijkstraAllPairsShortestPaths.cs).\n  * DFS Applications:\n    + [Cycles Detector](Algorithms/Graphs/CyclesDetector.cs).\n    + [Topological Sorter](Algorithms/Graphs/TopologicalSorter.cs).\n  * BFS Applications:\n    + [Connected Components](Algorithms/Graphs/ConnectedComponents.cs).\n    + [Bipartite Graphs Coloring](Algorithms/Graphs/BipartiteColoring.cs).\n\n#### Trees:\n  * [Recursive Binary Tree Walker](Algorithms/Trees/BinaryTreeRecursiveWalker.cs).\n    + Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder \u0026 Postorder.\n\n#### Strings:\n  * [Permutations and Anagrams](Algorithms/Strings/Permutations.cs).\n  * [Edit Distance](Algorithms/Strings/EditDistance.cs).\n    + Uses a generic custom class for passing costs: [EditDistanceCostsMap\\\u003cT\\\u003e](Algorithms/Strings/EditDistanceCostsMap.cs).\n\n#### Numeric:\n  * [Catalan Numbers](Algorithms/Numeric/CatalanNumbers.cs).\n  * [Greatest Common Divisor](Algorithms/Numeric/GreatestCommonDivisor.cs)\n\n#### Visualization:\n  * [Tree Drawer](DataStructures/Trees/TreeDrawer.cs).\n\n\n## CONTRIBUTORS\n\n  * [Edgar Carballo Domínguez](https://github.com/karv).\n  * [Lucas Lemaire](https://github.com/ZwoRmi).\n  * [Samuel Kenney](https://github.com/samuelkenney).\n  * [Ivandro Ismael Gomes Jao](https://github.com/ivandrofly)\n\n\n## LICENSE\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkansiris%2Fc-sharp-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkansiris%2Fc-sharp-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkansiris%2Fc-sharp-algorithms/lists"}