Logo Data Structures and Algorithms with Object-Oriented Design Patterns in C++
next up previous contents index

Insertion Sorting

The first class of sorting algorithm that we consider comprises algorithms that sort by insertion  . An algorithm that sorts by insertion takes the initial, unsorted sequence, tex2html_wrap_inline69689, and computes a series of sorted sequences tex2html_wrap_inline69773, as follows:

  1. The first sequence in the series, tex2html_wrap_inline69775 is the empty sequence. I.e., tex2html_wrap_inline69777.
  2. Given a sequence tex2html_wrap_inline69779 in the series, for tex2html_wrap_inline62662, the next sequence in the series, tex2html_wrap_inline69783, is obtained by inserting the tex2html_wrap_inline63500 element of the unsorted sequence tex2html_wrap_inline69787 into the correct position in tex2html_wrap_inline69779.
Each sequence tex2html_wrap_inline69779, tex2html_wrap_inline62662, contains the first i elements of the unsorted sequence S. Therefore, the final sequence in the series, tex2html_wrap_inline69799, is the sorted sequence we seek. I.e., tex2html_wrap_inline69801.

Figure gif illustrates the insertion sorting algorithm. The figure shows the progression of the insertion sorting algorithm as it sorts an array of ten integers. The array is sorted in place  . I.e., the initial unsorted sequence, S, and the series of sorted sequences, tex2html_wrap_inline69805, occupy the same array.

   figure34651
Figure: Insertion Sorting

In the tex2html_wrap_inline58387 step, the element at position i in the array is inserted into the sorted sequence tex2html_wrap_inline69779 which occupies array positions 0 to (i-1). After this is done, array positions 0 to i contain the i+1 elements of tex2html_wrap_inline69783. Array positions (i+1) to (n-1) contain the remaining n-i-1 elements of the unsorted sequence S.

As shown in Figure gif, the first step (i=0) is trivial--inserting an element into the empty list involves no work. Altogether, n-1 non-trivial insertions are required to sort a list of n elements.




next up previous contents index

Bruno Copyright © 1997 by Bruno R. Preiss, P.Eng. All rights reserved.