This repository contains C# implementations of selected algorithms, such as:
- Karatsuba Integer Multiplication
- Strassen's Matrix Multiplication
- Sorting algoritms: MergeSort, QuickSort, InsertionSort
- Finding the closest pair of points in O(n·log(n))
- RSelect (Randomized Selection) and DSelect (Deterministic Selection)
- BFS (Breath First Search) and DFS (Deph First Search)
- MinCut (Karger's Random Contraction)
- Topological Sorting
- Strongly Connected Components (Kosaraju's Two-pass Algorithm)
Each algorithm is accompanied by a set of tests.
Below is a list of sources used to create the C# code. Names in brackets correspond to comments in the code that reference a particular source. For example, exercises from Robert Sedgewick's book Algorithms are marked with the comment [Sedgewick].
[Sedgewick]Robert Sedgewick, Kevin Wayne (2011) "Algorithms" 4th edition; Addison-Wesley Professional[Cormen]Thomas H.Cormen et al. (2009) "Introduction to Algorithms" 3rd edition; Massachusetts Institute of Technology[AlgoIlluminated-1]Tim Roughgarden (2017) "Algorithms Illuminated: Part 1: The Basics: Asymptotic Notation, Master Method, Sorting, Selection"; Soundlikeyourself Publishing[AlgoIlluminated-2]Tim Roughgarden (2018) "Algorithms Illuminated: Part 2: Graph Algorithms and Data Structures"; Soundlikeyourself Publishing[CodingInterview]Gayle Laakmann McDowell (2020) "Cracking the Coding Interview" 6th edition; CareerCup- LeetCode
- Codility
- InterviewBit
- HackerRank
- Baeldung