Data Structures and Algorithms
Foundational data structures and algorithms, with Java implementations and complexity analysis.
Learn core data structures and algorithms through explanations, complexity analysis, and Java implementations. The source repository also includes the DSA and ADSA lecture outlines.
Foundations
Data structures
Linear structures
- Arrays - Fundamental Data Structure
- Linked List
- Introduction to Queues
- Stack - The LIFO Data Structure
Non-linear structures
Algorithms
Graph algorithms
Searching
Sorting
- Sorting (Simple)
- Bubble Sort
- Insertion Sort
- Selection Sort - The Minimalist Approach
- Sorting (Advanced)
- Counting Sort
- Merge Sort - The Divide and Conquer Champion
- Quick Sort
- Radix Sort
- Shell Sort
Algorithmic techniques
- Backtracking
- Bit Manipulation
- Branch and Bound
- Divide and Conquer
- Dynamic Programming
- Geometric Algorithms
- Greedy Algorithms
- Hashing (Theory)
- Mathematical Algorithms
- Randomized Algorithms
- Recursion - The Art of Self-Reference
- String Algorithms