Welcome to my Python Data Structures and Algorithms course! In this course, I will teach you all you need to know about Python Data Structures and Algorithms. I will walk you through each concept step-by-step, implement all data structures and algorithms, and provide practice problems and exams. By the time you have completed this course, you will also have seen at least 40 leetcode easy-med problems. (Leetcode is a resource used for practicing problems asked during technical interviews)
- Python
- Input/Output
- Variables
- Primitive Data Types (
int, float, bool
) - Artithmetic Operators (
+, -, *, /, %, //, **
) - Logical Operators (
and, or, not
) - Comparitive Operators (
<, <=, >, >=, ==, !=
- Built-in Functions (
abs(), max(), min(), sum(), type()
) - Control Flow (
if, elif, else, while
) - For Loops
- Collections (
str, lst, tuple, dict, set
) - Functions
- Classes
- Memory Map Images
- Python List Comprehension
- Ternary Operators
- Generator Functions
- Python Classes
- Operator Overloading
- Asymptotic Analysis (big O)
- Mathematical Proof
- Big O, Θ Ω
- Factors from 1 to N O(N) vs O(√N)
- Two Sum with Sorted Array O(N) vs O(N^2)
- Run-time and Extra space complexity
- Searching Algorithms
- Linear Search
- Binary Search
- Jump Search
- Recursion
- Dynamic Arrays (list)
- Sorting Algorithms
- Merge Sort
- Bubble Sort
- Insertion Sort
- Selection Sort
- Quick Sort
- Selection Algorithms
- Quick Select
- Stacks
- Prefix, Infix, Postfix (Polish Math Notations)
- Queues
- Circular Arrays
- Nested Lists
- Linked Lists
- Singly Linked List
- Doubly Linked List
- Binary Trees
- PreOrder, InOrder, PostOrder (depth-first)
- LevelOrder (breadth-first)
- Morris Tree Traversal (PreOrder with O(1) space)
- Binary Search Trees
- AVL Trees
- Tree Maps
- Hashing
- Open Addressing, Linear Probing
- Separate Chaining
- Hash Maps (dict)
- Hash Sets (set)
- Heaps/Priority Queues
- Min Heap, Max Heap
- Heap Sort
- Graphs