Skip to content
BytePatterns

Sorting Basics

Sorting: lesson 1 of 10

Comparisons, swaps, stability: the vocabulary of order.

Lesson 1 of 10 · 4 min

Sorting Basics

Step 1 of 5

Five records, in the order they arrived. Judge any sort on three things: time, extra memory and stability.

The Idea

Every comparison sort works by comparing pairs and rearranging them. Judge one on three things: time, extra memory, and stability. A stable sort keeps equal items in the order they arrived.

Real-World Example

Sort a spreadsheet by name, then sort it again by city. With a stable sort the names inside each city stay alphabetical; with an unstable one that earlier work is scrambled. Stability is what makes layered sorting possible at all.

The Code

people = [("Ada", "Rome"), ("Bo", "Lima"), ("Cy", "Rome")]

# Python's sort is stable: equal keys keep their original order
by_city = sorted(people, key=lambda p: p[1])
print(by_city)
# [('Bo', 'Lima'), ('Ada', 'Rome'), ('Cy', 'Rome')]
# Ada still comes before Cy, exactly as in the input.

nums = [5, 1, 4]
nums.sort()          # sorts in place, O(n log n)
print(nums)          # [1, 4, 5]

Python

Your turn

What does this print?

pairs = [("x", 2), ("y", 1), ("z", 2)]
out = sorted(pairs, key=lambda p: p[1])
print([p[0] for p in out])

Mini quiz

1 / 3

A stable sort guarantees that:

New lessons land every few weeks

Leave an address and we will tell you when the next one is up. That is the only reason we will use it.

One address, stored so we can email you. Nothing else, ever.