Algorithms icon indicating copy to clipboard operation
Algorithms copied to clipboard

Short explanations and implementations of different algorithms in multiple languages

Created Badge Updated Badge

PRs Welcome GitHub contributors

GitHub pull-requests GitHub pull-requests closed GitHub issues GitHub issues-closed

Algorithms

Basically these are supposed to be my notes, but feel free to use them as you wish to.

Note: Please read CONTRIBUTING.md before making any pull requests

TLDR of contributing.md:

  • Ensure that no one is working on (or already completed) the algorithm and language you want to work on
  • Use descriptive comit messages
  • You can create an issue for the algorithm you want to claim and work on
  • FOLLOW THE DIRECTORY STRUCTURE AND NAMING CONVENTION
  • UPDATE THE README AS YOU WORK ON A NEW ALGO

Types of Algorithms

  • Searching
  • Sorting
  • Primality Test
  • Classic algorithms

Searching Algorithms

  • Binary Search
  • Breadth First Search
  • Depth First Search
  • Exponential Search
  • Fibonacci Search
  • Interpolation Search
  • Jump Search
  • KMP Search
  • Linear Search
  • Rabin-Karp Search
  • Sublist Search
  • Ternary Search

Sorting Algorithms

  • Bucket Sort
  • Bubble Sort
  • Cocktail Sort
  • Comb Sort
  • Counting Sort
  • Cycle Sort
  • Heap Sort
  • Insertion Sort
  • Merge Sort
  • Pigeonhole Sort
  • Quick Sort
  • Radix Sort
  • Selection Sort
  • Shell Sort
  • Tim Sort

Primality Test

  • Optimised School Method (Check factors till √n)
  • Fermat Method
  • Miller-Rabin Method
  • Sieve of Eratosthenes
  • Solovay-Strassen Method

Classic Algorithms

  • 0/1 Knappsack
  • Dijkstra's Algorithm
  • Kadane's Algorithm
  • Kosaraju's algorithm
  • Kruskal's Algorithm
  • Lowest Common Ancestor
  • Prim's Algorithm
  • Tarjan's algorithm
  • Tries

Graph Coloring Algorithms

  • Greedy Graph Coloring Algorithm
  • Welsh Powell Algorithm