The shell sort is a "diminishing increment sort", better
known as a "comb sort" to the unwashed programming
masses. The algorithm makes multiple passes through the list,
and each time sorts a number of equally sized sets using the
insertion sort [5]. The size of the set to be sorted gets larger
with each pass through the list, until the set consists of the
entire list. (Note that as the size of the set increases, the
number of sets to be sorted decreases.) This sets the insertion
sort up for an almost-best case run each iteration with a
complexity that approaches O(n)