1: // Created by Frank M. Carrano and Timothy M. Henry.
2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey.
4: // Programming Problem 8.
6: template <class ItemType>
7: void shellSort(ItemType theArray[], int n)
8: {
9: for (int h = n / 2; h > 0; h = h / 2)
10: {
11: for (int unsorted = h; unsorted < n; unsorted++)
12: {
13: ItemType nextItem = theArray[unsorted];
14: int loc = unsorted;
15: while ( (loc >= h) && (theArray[loc – h] > nextItem) )
16: {
17: theArray[loc] = theArray[loc - h];
18: loc = loc − h;
19: } // end while
20: theArray[loc] = nextItem;
21: } // end for
22: } // end for
23: } // end shellSort