> For the complete documentation index, see [llms.txt](https://blog.sunilgudivada.dev/notebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms.md).

# DSA

- [Topics](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics.md)
- [Introduction](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/introduction.md)
- [Algorithm analysis](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/algorithm-analysis.md)
- [Asymptotic Notation](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/algorithm-analysis/time-complexity.md)
- [Memory](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/algorithm-analysis/memory.md)
- [Sorting](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting.md)
- [Selection Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/selection-sort.md)
- [Insertion Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/insertion-sort.md)
- [Merge Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/merge-sort.md)
- [Quick Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/quick-sort.md)
- [Quick'3 Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/quick3-sort.md)
- [Shell Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/shell-sort.md)
- [Shuffle sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/shuffle-sort.md)
- [Heap Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/heap-sort.md)
- [Arrays.sort()](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/arrays.sort.md)
- [Key Points](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/key-points.md)
- [Problems](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/problems.md)
- [Reorder Log files](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/sorting/problems/reorder-log-files.md): https://leetcode.com/problems/reorder-data-in-log-files/
- [Stacks and Queues](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues.md)
- [Stack Implementations](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues/stack-implementations.md)
- [Queue Implementations](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues/queue-implementations.md)
- [Priority Queues](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues/priority-queues.md)
- [Problems](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues/problems.md)
- [Dijkstra's two-stack algorithm](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues/problems/dijkstras-two-stack-algorithm.md)
- [Binary Search Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree.md)
- [Left Leaning Red Black Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/red-black-tree.md)
- [Java Implementations](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/red-black-tree/java-implementations.md)
- [2-3 Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/2-3-tree.md)
- [Search Operation - 2-3 Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/2-3-tree/search-operation-2-3-tree.md)
- [Insert Operation - 2-3 Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/2-3-tree/insert-operation-2-3-tree.md)
- [Geometric Applications of BST](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-search-tree/geometric-applications-of-bst.md)
- [B-Tree](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/b-tree.md)
- [Graphs](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/graphs.md)
- [Undirected Graphs](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/graphs/undirected-graphs.md)
- [Directed Graphs](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/graphs/directed-graphs.md)
- [Topological Sort](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/graphs/topological-sort.md)
- [Union Find](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure.md)
- [Dynamic Connectivity](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/dynamic-connectivity.md)
- [Quick Find - Eager Approach](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/quick-find-eager-approach.md)
- [Quick Find - Lazy Approach](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/quick-find-lazy-approach.md)
- [Defects](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/defects.md)
- [Weighted Quick Union](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/weighted-quick-union.md)
- [Quick Union + path comparison](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/quick-union-+-path-comparison.md)
- [Amortized Analysis](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/union-find-data-structure/amortized-analysis.md)
- [Convex Hull](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/convex-hull.md)
- [Binary Heaps and Priority Queue](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/binary-heaps-and-priority-queue.md)
- [Hash Table vs Binary Search Trees](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/hash-table-vs-binary-search-trees.md)
