17665603463552075055695267047198.gif

Idea: Find minimum and put it at the beginning

Key trait:

Minimum swaps


public class SelectionSort {
    public static void sort(int[] a) {
        for (int i = 0; i < a.length - 1; i++) {
            int min = i;
            for (int j = i + 1; j < a.length; j++) {
                if (a[j] < a[min]) min = j;
            }
            swap(a, i, min);
        }
    }

    private static void swap(int[] a, int i, int j) {
        int t = a[i]; a[i] = a[j]; a[j] = t;
    }
}

Watch for

Mental model: 🎯 Pick smallest → place it