Algorithms that I Learned

Mar 22, 2020 · 1 min read
Algorithms that I Learned

This is just a personal list of algorithms that I have learned over time. Since I keep on forgetting them, I decided I should make a list and review them from time to time. If you find the list helpful, thank me in the comments below.

Sorting

  1. Insertion Sort
  2. Selection Sort
  3. Bubble Sort
  4. Quick Sort
  5. Merge Sort
  6. Radix Sort
  7. Heap Sort
  8. Bogo Sort & Tim Sort 😛

Other things to know about sorting:

  • Stable vs Unstable sort

Graph Searching and Shortest Path algorithms

  1. Linear Search
  2. Binary Search
  3. A* Search Algorithm
  4. Breadth First Search (BFS)
  5. Depth First Search (DFS)
  6. Minimum Spanning Tree
  7. Kruskal’s
  8. Prim’s
  9. Bellman Ford
  10. Dijkstra
  11. Floyd-Warshall
  12. Ford-Fulkerson algorithm (Flow Networks)

Greedy algorithms

  1. Fractional Knapsack Problem
  2. Activity Selection Problem
  3. Huffman Encoding

Pattern Matching Algorithms

  1. KMP
  2. Boyer-Moore

Dynamic programming

  1. Coin Changing Problem
  2. 0-1 Knapsack Problem

Other algorithms

  1. Apriori algorithm
  2. Matrix Chain Multiplication
  3. Simplex Algorithm and Integer Linear Programming
  4. Hashing (SHA-512)
  5. Prefix, Infix and Postfix Expressions
  6. Floyd’s Algorithm (The Tortoise and the Hare)

Other things to know:

  • Static vs Dynamic Hashing

Data structures

  1. Stack
  2. Queue
  3. Linked Lists
    • Singly Linked Lists
    • Two way
    • Circular Linked Lists
  4. Trees
    • Binary search tree
    • AVL tree (self-balancing binary tree)
    • B Tree / B+ Tree
    • Red-Black Tree
    • N-ary tree
    • Ukkonen’s algorithm (Suffix tree)
    • Trie
    • Heap

Sharing is caring!