🧠 DSA in Python

This is the home note for Data Structures and Algorithms in Python. Every note below lives flat in this same folder, no sub-folders, so everything is one click away from the Obsidian search bar.

How to use this folder

Start with complexity analysis if you need a refresher on Big O, then move into data structures before tackling algorithm families like sorting, searching, and dynamic programming. Technique notes (two pointers, sliding window) are where a lot of interview-style problems actually get solved fast.

Foundations

Linear Data Structures

Hash-Based and Tree Structures

Graphs

Core Algorithms

Problem-Solving Techniques

Reference


Quick Complexity Cheat Sheet

Structure / AlgorithmAccessSearchInsertDelete
Array / ListO(1)O(n)O(n)O(n)
Linked ListO(n)O(n)O(1)*O(1)*
Hash TableN/AO(1) avgO(1) avgO(1) avg
BST (balanced)O(log n)O(log n)O(log n)O(log n)
HeapO(1) topO(n)O(log n)O(log n)

*O(1) at a known node/position, O(n) if you must search for it first.

Related Folders

The core Python folder covers language mechanics (loops, functions, OOP). This folder assumes that foundation and focuses purely on problem-solving structures and algorithms built on top of it.