Understanding data structures and algorithms is a very important subject and it's crucial for every software developer for writing efficient and effective code. In this repository, I'm implementing some of the most common Data Structures (such as arrays, stacks, linked lists, queues, hash tables, graphs, and trees, etc) and Algorithms (such as Binary Search, Linear/Sequential Search, Insertion Sort, Bubble Sort, Merge Sort, Quicksort, etc).
Each implementation is accompanied by detailed explanations of its properties, operations, use cases, Time Complexity & Space Complexity (Big O Notation), and clear example code.
- Arrays
- Stacks
- Queues
- Linked Lists (Singly and Doubly Linked Lists)
- Hash Tables
- Graphs
- Trees
- Sequential Search / Linear Search
- Time Complexity: O(n)
- Space Complexity: O(1)
- Binary Search
- Time Complexity: O(log n)
- Space Complexity: O(1)
- Insertion Sort
- Time Complexity: O(n^2)
- Space Complexity: O(1)
- Selection Sort
- Time Complexity: O(n^2)
- Space Complexity: O(1)
- Bubble Sort
- Time Complexity: O(n^2)
- Space Complexity: O(1)
- Merge Sort
- Time Complexity: O(n log n)
- Space Complexity: O(n)
- Quicksort
- Time Complexity: O(n^2)
- Space Complexity: O(n)