← back to algorithms

dedicated visualizer

Selection Sort

Selects the minimum value from the unsorted suffix and places it into the next sorted slot. This page keeps the runner, chart, and controls focused on a single algorithm so the walkthrough feels calmer than the overview page.

sortingbeginnerbest O(n²)worst O(n²)space O(1)
minimum scanselectionin-placeprefix growth

session controls

Compare this algorithm against a related one, turn on quiz mode, or keep the current state in a shareable URL.

current shareable URL

Copy the URL to preserve this exact dataset, target, compare mode, and quiz state.

browse more

Want a different problem or visual mode? Jump back to the catalog and open another dedicated page.

open catalog

scenario presets

Load a focused input that reveals a specific behavior quickly instead of hand-editing every value first.

dataset controls

Use your own array, randomize a fresh one, or restore defaults. The same dataset is shared by both panels in compare mode.

Enter up to 12 integers. Values are normalized to the range 1–99 for clean visualization.

step 1 / 590% complete

current action

start selection

8
8
idx 0
3
3
idx 1
5
5
idx 2
1
1
idx 3
9
9
idx 4
6
6
idx 5
2
2
idx 6
7
7
idx 7

run summary

Finished in 59 steps. Final order: 1, 2, 3, 5, 6, 7, 8, 9.

comparisons

28

swaps

6

sorted

8

steps

59

current explanation

Selection sort grows a sorted prefix by selecting the minimum remaining value.

simple explanation

Pick the smallest unsorted number and place it next.

pseudocode

1choose the first unsorted index
2scan the remaining values for the minimum
3swap that minimum into the chosen slot
4move the sorted boundary one step right

complexity card

best

O(n²)

average

O(n²)

worst

O(n²)

space

O(1)

algorithm notes

intuition

Each pass makes one permanent choice: the next smallest value.

tradeoffs

  • Uses few swaps compared with bubble sort.
  • Still scans the remaining array every pass.
  • Not stable in its usual form.

when to use it

Useful when swaps are expensive but comparisons are cheap, or when teaching simple in-place sorting.

interview tips

  • Point out that the number of comparisons does not improve on nearly sorted input.
  • Good contrast against insertion sort when discussing writes vs comparisons.

what I learned building this

typed definitions

One algorithm schema now drives the catalog, counters, pseudocode, notes, and visual modes, which keeps the UI consistent as the lab grows.

replay over mutation

Precomputed steps made it much easier to synchronize explanations, metrics, quiz prompts, and scrubber playback without hidden state drifting out of sync.

portfolio framing

Shareable URL state, compare mode, and responsive layouts mattered as much as the algorithm logic because this page needs to teach clearly and still feel polished as a product.

more in this lane

Want a different take on the same problem family? These stay in the same category but change the strategy.