A sorting algorithm that inserts each item in the proper place into an initially empty list by comparing it with each item in the list until it finds the new element's successor or the end of the list. A very innefficient sort (on about the same level of efficiency as the bubble sort).

Example Code:

procedure Insertion( var a : anarray; N : integer);

 var i, j, v : integer;

begin
 
 for i := 2 to N do
  begin
    v := a[i]
    j := i;

      {Short circuit evaluation is assumed for
        the AND in the while loop.}
    while (j > 1) AND (a[j-1] > v) do
     begin
      a[j] := a[j-1]
      j := j-1
     end;

    a[j] := v;

  end;

end;
Back to Sorting Algorithms