The Insertion Sort Algorithm
The idea of this sort is to maintain a sorted list while taking, at each step, the next value (whatever it might be) from the remaining unsorted values, and inserting that value into its proper place in the sorted list.
Name: SortByInsertion
Input:
Output:
Algorithm SortByInsertion(s, firstPosition, lastPosition)
---------------------------------------------------------
while values not yet sorted
Take next unsorted value
Find proper place in sorted list to insert this value
Insert the value
endwhile
Note that after each iteration the number of remaining unsorted values has been reduced by one.
We say that the insertion sort algorithm is, in general, a O(n2) algorithm, or that it has "quadratic time complexity". We will not present the arguments in detail, but they are quite similar to those used in the analysis of selection sort. In fact, many of the comparison-based sorting algorithms whose structure is essentially two nested loops turn out to be O(n2) algorithms.