Skip to content

Visual Comparison Of Sorting Algorithms

This file uses Mermaid diagrams to show how different sorting algorithms work.

If your Markdown viewer supports Mermaid, these diagrams will render as flowcharts.

Bubble Sort

Idea: compare neighbors and swap if they are in the wrong order.

mermaid flowchart LR A[5 3 8 1] --> B[Compare 5 and 3] B --> C[Swap] C --> D[3 5 8 1] D --> E[Compare 5 and 8] E --> F[No Swap] F --> G[Compare 8 and 1] G --> H[Swap] H --> I[3 5 1 8]

Insertion Sort

Idea: take one new item and insert it into the correct place in the sorted part.

mermaid flowchart LR A[Sorted: 5 | Unsorted: 3 8 1] --> B[Take 3] B --> C[Insert before 5] C --> D[Sorted: 3 5 | Unsorted: 8 1] D --> E[Take 8] E --> F[Insert after 5] F --> G[Sorted: 3 5 8 | Unsorted: 1]

Selection Sort

Idea: find the smallest item and place it in front.

mermaid flowchart LR A[5 3 8 1] --> B[Find smallest] B --> C[Smallest is 1] C --> D[Swap with first element] D --> E[1 3 8 5] E --> F[Repeat on remaining part]

Quick Sort

Idea: choose a pivot, split into smaller and bigger parts, then sort both sides.

mermaid flowchart TD A[5 3 8 1 4] --> B[Choose pivot 5] B --> C[Smaller: 3 1 4] B --> D[Pivot: 5] B --> E[Bigger: 8] C --> F[Choose pivot 3] F --> G[1] F --> H[3] F --> I[4] G --> J[1 3 4] H --> J I --> J J --> K[1 3 4 5 8] D --> K E --> K

Merge Sort

Idea: split into halves, sort each half, then merge them back together.

mermaid flowchart TD A[5 3 8 1] --> B[5 3] A --> C[8 1] B --> D[5] B --> E[3] C --> F[8] C --> G[1] D --> H[3 5] E --> H F --> I[1 8] G --> I H --> J[1 3 5 8] I --> J

Heap Sort

Idea: build a max-heap, remove the largest item, and repeat.

mermaid flowchart TD A[4 10 3 5 1] --> B[Build Max Heap] B --> C[Top is 10] C --> D[Swap 10 with last] D --> E[Fix heap] E --> F[Top is next largest] F --> G[Repeat]

One-Page Comparison

```mermaid flowchart TD A[Sorting Algorithms] --> B[Bubble Sort] A --> C[Insertion Sort] A --> D[Selection Sort] A --> E[Quick Sort] A --> F[Merge Sort] A --> G[Heap Sort]

B --> B1[Swap neighbors]
B --> B2[Usually O(n^2)]

C --> C1[Insert into sorted part]
C --> C2[Good for small or nearly sorted data]

D --> D1[Pick smallest each round]
D --> D2[Always O(n^2)]

E --> E1[Split around pivot]
E --> E2[Average O(n log n)]
E --> E3[Worst O(n^2)]

F --> F1[Split and merge]
F --> F2[Always O(n log n)]
F --> F3[Needs extra memory]

G --> G1[Use max-heap]
G --> G2[Always O(n log n)]
G --> G3[In-place]

```

Speed Ladder

mermaid flowchart LR A[Usually Slower] --> B[Bubble] B --> C[Selection] C --> D[Insertion] D --> E[Heap] E --> F[Merge] F --> G[Quick] G --> H[Usually Faster]

Note: this is a simple learning picture, not a perfect rule for every case.