insertion sort

February 2020

program InsertionSort;
// https://en.wikipedia.org/wiki/Insertion_sort

var
    i, j, tmp: integer;
    // array of unsorted integers
    numbers: array[0..4] of integer = (14, 33, 27, 35, 10);
begin
    for i := length(numbers) - 1 DownTo 0 do
        begin
            tmp := numbers[i];
            j := i;
            while ((j > 0) and (numbers[j - 1] > tmp)) do
                begin
                    numbers[j] := numbers[j - 1];
                    j -= 1;
                end;
            // end while
            numbers[j] := tmp;
        end;
    // end for

    // sorted
    for i := 0 to length(numbers) - 1 do write(numbers[i], ' ');
    // 10 14 27 33 35
end.