Purpose of this repository is to practice basic Data Structures Implementation in C#. Content of this repository is inspired by this youtube video
Other relevent videos
- Graph Algorithms for Technical Interviews - Full Course
- Binary Tree Algorithms for Technical Interviews - Full Course
- Recursion in Programming - Full Course
- Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges
- 10 Common Coding Interview Problems - Solved!
- Algorithms and Data Structures Tutorial - Full Course for Beginners
- Linked Lists for Technical Interviews - Full Course
- Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer
- Solve Coding Interview Backtracking Problems - Crash Course
- What is Binary Search?
- Big O Notation - Full Course
- Common Algorithms
YouTube Channels
A data sturucture (DS) is a way of organizing data so that it can be used effectively.
An abstruct data type (ADT) is an abstraction of a data structure which provides only the interface to which a data structure must adhere to. The interface does not give any specific details about how something should be implemented or in what programming language.
Abstraction (ADT) | Implementation (DS) |
---|---|
List | Dynamic Array, Linked List |
Queue | Linked List based Queue, Array based Queue, Stack based Queue |
Map | Tree Map, Hash Map / Hash Table |
List | Dynamic Array, Linked List |
Big-O Noation gives an upper bound of the complexity in the worst case, healping to quantify performance as the input size becomes arbitararily large.
Big-O only cares about the worst case.
X | Y |
---|---|
Constant Time: | O(1) |
Logarithmic Time: | O(log(n)) |
Linear Time: | O(n) |
Linearithmic Time: | O(nlog(n)) |
Quadric Time: | O(n2) |
Cubic Time: | O(n3) |
Exponential Time: | O(bn) |
Factorial Time: | O(n!) |
Fidning all the subsets of a set - O(2n)
Fidning all permutation of a string - O(n!)
Sorting using mergesort - O(nlog(n))
Iterating over all the cells in a matrix of size n by m - O(nm)
- Arrays