This project is about understanding, implementing and evaluating popular algorithms and data structures for common use cases in programming.
This Repo's expository language for DSA is Javascript, there is a separate repo for DSA using Java as well.
I will be covering the algorithms in the following areas:
1- Searching 2- Sorting
1- Bubble Sort 2- Merge Sort 3- Quick Sort 4- Selection Sort
1- Binary search 2- linear search
And we will also be discussing the Big O Notations for the time and space complexity in best, average and the worst case scenarios as well for these algorithms.
1- Arrays 2- Linked Lists (singly & doubly) 3- Maps 4- Sets 5- Queues 6- Priority Queues 7- Stacks 8- Trie 9- Hash tables 10- heaps (max and min) 11- binary search tree 12- graphs
The algorithms will be implemented in the Java & Javascript languages. In case, where ES6 provides built in data structures for sets and maps, I will show both built in and a custom implementation of it.
Important part of knowing algorithms is to know their runtimes and which algorithm is best suited for a given problem and its underlying data structure to be used as well. Thus Algorithms will be evaluated for Time & space complexity and Big O notation will be discussed for them.