ABSTRACT
Sorting is the process of arranging elements according to a total ordering (e.g., ). It is a fundamental building block in Computer Science that makes searching, finding duplicates, and set operations significantly more efficient.
Why Sort?
- Efficiency: Sorted data enables faster operations (e.g., Binary Search or finding Min/Max).
- Organization: Helps in ranking and finding duplicates.
- Algorithmic Variety: Sorting is the perfect playground for learning:
- Iterative (Bubble, Selection)
- Recursive / Divide & Conquer (Merge Sort)
- Randomized (Quick Sort)
The Valet Problem: Minimum Swaps
Imagine you and a friend are valets. You have 6 cars in a row and must order them by value (cheapest on the left, most expensive on the right). With no extra parking spots, your only operation is swapping two cars.

The Goal: Sort the lot in the fewest number of swaps. The Solution (Selection Sort Logic):
- Identify the car that should be at the current position (e.g., the minimum value).
- Swap it with the car currently occupying that spot.
- Repeat for the next position until the lot is sorted.

TIP
Swap Limits: For a list of size , the Best Case is swaps (already sorted). The Worst Case is swaps (e.g., when the elements are cyclically shifted).
Sorting Specification
Given a list , we rearrange them such that:
- Sorted Property: .
- Permutation Property: The output contains the exact same set of values as the input.
Basic Operations:
- Comparison: Checking if .
- Swap: Exchanging the positions of two elements.
Knowledge Map
Bubble Sort
- Logic: Repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order.
- Vibe: The largest elements “bubble up” to the end of the list.
Selection Sort (Min Sort)
- Logic: Divides the list into a “sorted” and “unsorted” region. It repeatedly selects the minimum element from the unsorted region and moves it to the end of the sorted region.
- Vibe: Direct placement based on the Valet Problem strategy.
Insertion Sort
- Logic: Builds the final sorted array one item at a time by inserting each new element into its correct relative position among the already-sorted elements.
Related Toolkits
- Merge Sort – Scaling sorting to .
- Asymptotic Notation – Comparing why some sorts are better for large .