Sorting Algorithms

Seven sorting algorithms on the same array. Choose how many values and what order they start in, then play it through or step one comparison at a time.

  • Waiting
  • Being compared
  • Just moved
  • In final position
Speed

Step 1 of 102

Bubble sort, 12 values in random order.

Counters

Comparisons
0
Writes
0
n
12
Average case
O(n²)

Settings

Algorithm
Starting order

Bubble sort

  1. 1for i in 0..n-1:
  2. 2 swapped = false
  3. 3 for j in 0..n-i-2:
  4. 4 if a[j] > a[j+1]:
  5. 5 swap(j, j+1)
  6. 6 swapped = true
  7. 7 // a[n-1-i] is now final
  8. 8 if not swapped: break

How the seven compare

AlgorithmBestAverageWorstExtra memoryStable
BubbleO(n)O(n²)O(n²)O(1)Yes
InsertionO(n)O(n²)O(n²)O(1)Yes
SelectionO(n²)O(n²)O(n²)O(1)No
ShellO(n log n)O(n√n)O(n²)O(1)No
MergeO(n log n)O(n log n)O(n log n)O(n)Yes
QuickO(n log n)O(n log n)O(n²)O(log n)No
HeapO(n log n)O(n log n)O(n log n)O(1)No

Stable means equal values keep their original order.