
Idea: Find minimum and put it at the beginning
O(n²)O(1)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