Shell sort is a highly efficient sorting algorithm and is based on insertion sort algorithm.
This algorithm avoids large shifts as in case of insertion sort,
if the smaller value is to the far right and has to be moved to the far left.
This algorithm uses insertion sort on a widely spread elements,
first to sort them and then sorts the less widely spaced elements.
This spacing is termed as interval.
This interval is calculated based on Knuth's formula as −
Knuth's Formula
h = h * 3 + 1
where −
h is interval with initial value 1
This algorithm is quite efficient for medium-sized data sets as its average
and worst-case complexity of this algorithm depends on the gap sequence the best known is Ο(n),
where n is the number of items.
And the worst case space complexity is O(n).
Shell sort is an example of internal sorting because sorting of elements is done internally using an array.
Shell sort uses an increment sequence h1, h2, h3… and this sequence will work as long as h1=1.
Shell sort performs an insertion sort on hk independent arrays. It is mainly a variation of insertion sort.