Implemention of various data structures and algorithms using Python. This repo also provides test cases for some of the algorithms and datastructures.
- Bubble Sort
- Optimized
- Recursion
- No Loop
- Test Case
- Selection Sort
- Optimized
- Recursion
- Stable
- Test Case
- Insertion Sort
- Recursion
- Odd/Even Problem
- Test Case
- Merge Sort
- Inplace
- Test Case
- Quick Sort
- Hoare
- Lomuto
- Random
- Dual Pivot
- Optimized
- Stable
- Test Case
- Shell Sort
- Counting Sort
- Character Based
- Handle Negative Numbers
- Test Case
- Radix Sort + (lsd, msd, using counting sort)
- LSD
- MSD
- Using Counting sort
- Test Case
- Linked List
- Push / (fast) append / insert (at index, after a node)
- remove (first / last / using index / using key)
- find an element using key or index
- Calculation of distance between two nodes
- Has loop? (Floyd slow and fast pointers approach)
- Reverse the list
- Test Cases
- Doubly Linked List
- Hash Table
- Resizing
- Add
- Remove
- Get
- Divide and Conquer
- Karatsuba: Problem statement
- Max Subarray: Finding maximum subarray sum of a given array using divide and conquer.