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

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

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

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

Опис і код
Ідея: будуємо відсортований префікс. На кроці i просуваємо елемент вліво, обмінюючи сусідні пари a[j-1] і a[j], поки порядок не стане правильним.
Інваріант: перед початком ітерації i префікс [0..i-1] відсортований.
void insertion_sort(int a[], int n) {
    for (int i = 1; i < n; ++i) {
        for (int j = i; j > 0 && a[j - 1] > a[j]; --j) {
            std::swap(a[j - 1], a[j]); 
        }
    }
}