# Overview

- [1. Sort](https://algorithm.prettylog.com/overview/readme.md)
- [Selection Sort](https://algorithm.prettylog.com/overview/readme/selection-sort.md)
- [Bubble Sort](https://algorithm.prettylog.com/overview/readme/bubble-sort.md)
- [Insertion Sort](https://algorithm.prettylog.com/overview/readme/insertion-sort.md)
- [Insertion Sort:: singly linked list](https://algorithm.prettylog.com/overview/readme/insertion-sort/insertion-sort-singly-linked-list.md)
- [Recursive](https://algorithm.prettylog.com/overview/readme/insertion-sort/insertion-sort-singly-linked-list/recursive.md)
- [Using Array O(N), O(N)](https://algorithm.prettylog.com/overview/readme/insertion-sort/insertion-sort-singly-linked-list/using-array-o-n-o-n.md)
- [Using Iteration O(N), O(1)](https://algorithm.prettylog.com/overview/readme/insertion-sort/insertion-sort-singly-linked-list/using-iteration-o-n-o-1.md)
- [Quick Sort](https://algorithm.prettylog.com/overview/readme/quick-sort.md)
- [Merge Sort](https://algorithm.prettylog.com/overview/readme/merge-sort.md)
- [Heap Sort](https://algorithm.prettylog.com/overview/readme/heap-sort.md)
- [Counting Sort](https://algorithm.prettylog.com/overview/readme/counting-sort.md)
- [Counting Sort](https://algorithm.prettylog.com/overview/readme/counting-sort/counting-sort.md)
- [Sort a String](https://algorithm.prettylog.com/overview/readme/counting-sort/counting-sort/sort-a-string.md)
- [Bucket Sort](https://algorithm.prettylog.com/overview/readme/counting-sort/bucket-sort.md)
- [Radix Sort](https://algorithm.prettylog.com/overview/readme/counting-sort/radix-sort.md)
- [Topological Sort](https://algorithm.prettylog.com/overview/readme/topological-sort.md)
- [2. Data Structures](https://algorithm.prettylog.com/overview/2.-data-structures.md)
- [Array](https://algorithm.prettylog.com/overview/2.-data-structures/array.md)
- [Stack](https://algorithm.prettylog.com/overview/2.-data-structures/stack.md)
- [Queue](https://algorithm.prettylog.com/overview/2.-data-structures/queue.md)
- [Tree](https://algorithm.prettylog.com/overview/2.-data-structures/tree.md)
- [PreOrder, InOrder, PostOrder](https://algorithm.prettylog.com/overview/2.-data-structures/tree/preorder-inorder-postorder.md)
- [Transfer between each](https://algorithm.prettylog.com/overview/2.-data-structures/tree/preorder-inorder-postorder/transfer-between-each.md)
- [Traverse](https://algorithm.prettylog.com/overview/2.-data-structures/tree/preorder-inorder-postorder/traverse.md)
- [Binary Tree](https://algorithm.prettylog.com/overview/2.-data-structures/tree/binary-tree.md)
- [Binary Search Tree](https://algorithm.prettylog.com/overview/2.-data-structures/tree/binary-tree/binary-search-tree.md)
- [Graph](https://algorithm.prettylog.com/overview/2.-data-structures/graph.md)
- [Data Structure](https://algorithm.prettylog.com/overview/2.-data-structures/graph/data-structure.md): How to store Graph data in a code?
- [Traverse Graph](https://algorithm.prettylog.com/overview/2.-data-structures/graph/traverse-graph.md)
- [Detect a cycle in a Graph](https://algorithm.prettylog.com/overview/2.-data-structures/graph/detect-a-cycle-in-a-graph.md)
- [DFS \*](https://algorithm.prettylog.com/overview/2.-data-structures/graph/detect-a-cycle-in-a-graph/dfs.md)
- [undirected clean code](https://algorithm.prettylog.com/overview/2.-data-structures/graph/detect-a-cycle-in-a-graph/dfs/undirected-clean-code.md)
- [Union Find](https://algorithm.prettylog.com/overview/2.-data-structures/graph/detect-a-cycle-in-a-graph/union-find.md)
- [Count edges - undirected only](https://algorithm.prettylog.com/overview/2.-data-structures/graph/detect-a-cycle-in-a-graph/count-edges-undirected-only.md): Edges should have to be n - 1 where n is the number of vertexes
- [Linked List](https://algorithm.prettylog.com/overview/2.-data-structures/linked-list.md)
- [Trie](https://algorithm.prettylog.com/overview/2.-data-structures/trie.md)
- [Javascript](https://algorithm.prettylog.com/overview/2.-data-structures/trie/javascript.md)
- [Java](https://algorithm.prettylog.com/overview/2.-data-structures/trie/java.md)
- [Union Find](https://algorithm.prettylog.com/overview/2.-data-structures/union-find.md): Disjoint-set: not sharing any element between two sets
- [Detect Cycle with Disjoint-set Union Find](https://algorithm.prettylog.com/overview/2.-data-structures/union-find/detect-cycle-with-disjoint-set-union-find.md): use Union Find data structure to find a cycle
- [Kruskal Algorithm](https://algorithm.prettylog.com/overview/2.-data-structures/union-find/kruskal-algorithm.md)
- [Heap](https://algorithm.prettylog.com/overview/2.-data-structures/heap.md)
- [Matrix](https://algorithm.prettylog.com/overview/2.-data-structures/matrix.md)
- [Union Find: Disjoint Set](https://algorithm.prettylog.com/overview/2.-data-structures/union-find-disjoint-set.md): Tree, MST (Kruskal)
- [3. How to construct Algorithm? Paradigm](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm.md)
- [Greedy Algorithm](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/greedy-algorithm.md)
- [Prim](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/greedy-algorithm/prim.md)
- [Dijkstra](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/greedy-algorithm/dijkstra.md)
- [Prim vs Dijkstra](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/greedy-algorithm/prim-vs-dijkstra.md)
- [Dynamic Planning Techique](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/dynamic-planning-techique.md)
- [Dynamic Planning](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/dynamic-planning.md)
- [Divide And Conquer](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/divide-and-conquer.md)
- [Brute force](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/brute-force.md)
- [Shortest path](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/shortest-path.md)
- [BFS](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/shortest-path/bfs.md)
- [Dijkstra algorithm: directed, shortest path](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/shortest-path/dijkstra-algorithm-directed-shortest-path.md)
- [MST (Minimum Spanning Tree)](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/mst-minimum-spanning-tree.md)
- [Prim vs Digkstra](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/mst-minimum-spanning-tree/prim-vs-digkstra.md)
- [Prim, Kruskal Why? only undirected graph?](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/mst-minimum-spanning-tree/prim-kruskal-why-only-undirected-graph.md)
- [Kruskal's Algorithm: undirected](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/mst-minimum-spanning-tree/kruskals-algorithm-undirected.md): Edge, Union Find
- [Prim's Algorithm: undirected](https://algorithm.prettylog.com/overview/3.-how-to-construct-algorithm-paradigm/mst-minimum-spanning-tree/prims-algorithm-undirected.md): Vertex, Priority Queue


---

# 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://algorithm.prettylog.com/overview.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.
