← All examples

Insertion sort

C++ Algorithms

insertion sort

Flowchart (ISO 5807)

YesNoStartInput a[], ni = 1, n - 1, 1key = a[i]j = i - 1j >= 0 && a[j] > keya[j + 1] = a[j]j--a[j + 1] = keyEndFigure 1 — insertionSort

Source code

void insertionSort(int a[], int n) {
    for (int i = 1; i < n; i++) {
        int key = a[i];
        int j = i - 1;
        while (j >= 0 && a[j] > key) {
            a[j + 1] = a[j];
            j--;
        }
        a[j + 1] = key;
    }
}