Welcome to Algorithms and Data Structures Tutorial!
- Floyd Cycle Detection
How to detect cycle in a Linked List, find start of the cycle, and measure its length.
- Sieve of Eratosthenes
A fast way to find small prime numbers.
- GCD in Java using Euclidean Algorithm
How Euclid was finding Greatest Common Divisor.
- GCD in Clojure using Euclidean Algorithm
Euclid’s functional approach to Greatest Common Divisor. He loved math, so probably this version was natural for him.
- Binary Search
The fastest way to find an element in a sorted list.
- Bubble Sort
How to push bubbles into right places in ϴ(n²) time!
- Insertion Sort
Sort in ϴ(n²) time by inserting element to its correct position, like in cards.
- Selection Sort
Sort in ϴ(n²) time by putting the next min/max element on the current position.
- Merge Sort
Fast, O(n log n) sorting with parallelization potential.
- Parallel Merge Sort
Merge Sort running parallel for maximum performance.
Another sorting that on average is O(n log n), but is easier to implement than merge sort.
- Palindrome detector
Two simple ways to verify if a String is a palindrome.
- Graph representation
How to represent graphs inside your code!