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