Assignments of the Algorithms 1 course of Coursera and implementations of all the algorithms and data structures in the course(taught in Java) in Python.
- Union-find :
- Quick Find Union Find
- Quick Union Union Find
- Weighted Quick Union Union Find
- Weighted Quick Union with Path Compression Union Find
- Binary Search:
- Iterative
- Recursive
- Stacks and Queues:
- Linked List Stack
- Resizing Array Stack
- Linked List Queue
- Resizing Array Queue
- Elementary sorts:
- Selection Sort
- Insertion Sort
- Shell Sort
- Mergesort
- Quicksort
- Priority Queues:
- Unordered Array Max Priority Queue
- Binary Heap Max Priority Queue
- Elementary Symbol Tables:
- Linked list Symbol Table
- Binary Search Symbol Table
- Binary Search Tree
- Red-Black Binary Search Tree
- Graphs:
- Undirected Graph:
- Connected Components
- Directed Graph:
- Depth-first order
- Strong Connected Components(Kosaraju-Sharir algorithm)
- Graph Search:
- Depth-first Search
- Breadth-first Search
- Undirected Graph: