Introduction to data structures and algorithms -- Overview of data structures and algorithms -- Importance of data structures and algorithms in programming -- How to choose the right data structures or algorithm --Basic python concepts review -- Variables and data types -- Conntrol flow statements -- File handling -- Data structures -- Arrays -- Stacks and queues -- Linked lists -- Hash tables -- Binary search trees (BST) -- Cartesian trees (Treap) -- B-trees -- Red-black-trees -- Splay trees -- AVL trees -- K-dimensional (K-D) trees -- Trie tree -- Suffix tree -- Min heap -- Max heap -- Sorting algorithm -- Quick sort -- Merge sort -- Tim sort -- Heap sort -- Bubble sort -- Insertion sort -- Selection sort -- Tree sort -- Shell sort -- Bucket sort -- Radix sort -- Counting sort -- Cube sort -- Searching algorithms -- Linear search -- Binary search -- Graph algorithms -- Dijkstra's algorithms -- Breadth first search (BFS) -- Depth first search (DFS) -- Algorithm design techniques -- Greedy algorithms -- Dynamic programming -- Divide and conquer -- Backtracking -- Randomized algorithms -- Conclusion -- Recap
Summary
The book's content will include hands-on exercises and examples to help you practice and apply the concepts you learn. Through the book, you’ll be exposed to the time and space complexity of the algorithm and data structures, so that you can understand the trade-offs of choosing one over the other