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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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