Class ShellSort

java.lang.Object
com.aoapps.hodgepodge.sort.ShellSort
All Implemented Interfaces:
ComparisonSortAlgorithm<Object>, SortAlgorithm<Object>

public final class ShellSort extends Object
A shell sort demonstration algorithm. SortAlgorithm.java, Thu Oct 27 10:32:35 1994 Note: Invented by Donald Lewis Shell [CACM, July, 1959, pages 30-32]

http://www.auto.tuwien.ac.at/~blieb/woop/shell.html

Shellsort is a simple extension of insertion sort which gains speed by allowing exchanges of elements that are far apart. The idea is to rearrange the array to give it the property that every hth element (starting anywhere) yields a sorted array. Such an array is said to be h-sorted.

By h-sorting for some large values of h, we can move elements in the array long distances and thus make it easier to h-sort for smaller values of h. Using such a procedure for any sequence of values h which ends in 1 will produce a sorted array.

Adapted from Jason Harrison's ShellSortAlgorithm.

Version:
1.0, 23 Jun 1995, 1.1, 12 Apr 2000 -- fixed java.lang.ArrayIndexOutOfBoundsException Joel Berry <jmbshifty@yahoo.com> found this bug
Author:
Jason Harrison@cs.ubc.ca