PDSA using Python

This is an online textbook for the course Programming, Data Structures and Algorithms using Python (PDSA).

Created By:- Atul Pratap Singh, Instructor, BS Program, IIT Madras

Note to students: This book is meant to be used as a reference. You may find content that has not been covered in the video lectures. Likewise, there may be some content that is present in the lectures which is not covered here. In summary, please refer to chapters that you feel are relevant for the course. But you are under no obligation to read the entire book cover to cover. Interested students are always welcome to read the entire thing!

INDEX

WeekContent
1Python recap, Why efficiency matters?
2Algorithm analysis: Complexity and Notations, Searching algorithms:- Linear and Binary Search, Sorting algorithms:- Selection, Insertion and Merge Sort
3Quick Sort, Data structures: Python List vs NumPy Array, Linked List, Hashing, Stack, Queue
4Graph algorithms:- Introduction, Graph representation, BFS, DFS, Topological Sorting, Longest Path in DAG
5Graph algorithms:- Shortest Path:- Dijkstra's, Bellman Ford and Floyd-Warshall Algorithm, Minimum Spanning Tree:- Prim's and Kruskal's Algorithm
6Union-Find Data Structure, Data structures: Tree, Heap, Binary Search Tree
7AVL Tree, Greedy Algorithm
8Divide and Conquer Algorithm
9Dynamic programming
11Complexity classes, Flow network and Linear programming
12String or Pattern Matching Algorithm and Regular Expressions(Extra Content)
Competetive Problems for Practice(Contribute by Vikrant Mehta)