# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
