> For the complete documentation index, see [llms.txt](https://algorithm.prettylog.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://algorithm.prettylog.com/overview.md).

# 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
