Сортування вибором (Selection sort)
Крок 0/0
Швидкість ~450 мс/крок

Змінні циклів

Порівнянь: 0
Обмінів: 0
Кроків: 0
порівняння (minIndex ↔ j)    обмін (i ↔ minIndex)

Пояснення кроку

Опис і код
Ідея: на позицію i ставимо мінімум з підмасиву i..n-1.
Інваріант: після ітерації i префікс [0..i] відсортований і містить i+1 найменших елементів.
void selection_sort(int a[], int n) {
    for (int i = 0; i < n - 1; ++i) {
        int minIndex = i;
        for (int j = i + 1; j < n; ++j) {
            if (a[j] < a[minIndex]) minIndex = j;
        }
        if (minIndex != i) std::swap(a[i], a[minIndex]);
    }
}