Java shell希尔排序 Java选择排序 Java快速排序 Java shell希尔排序 package sort; import static sort.SortUtils.*; /** * @author dpunosevac * * * @see SortAlgorithm * */ public class ShellSort implements SortAlgorithm { /** * This method implements Generic Shell Sort. * @param array The array to be sorted */ @Override public <T extends Comparable<T>> T[] sort(T[] array) { int N = array.length; int h = 1; while (h < N/3) { h = 3 * h + 1; } while (h >= 1) { for (int i = h; i < N; i++) { for (int j = i; j >= h && less(array[j], array[j-h]); j -= h) { swap(array, j, j - h); } } h /= 3; } return array; } public static void main(String[] args) { Integer[] toSort = {4, 23, 6, 78, 1, 54, 231, 9, 12}; ShellSort sort = new ShellSort(); Integer[] sorted = sort.sort(toSort); print(sorted); } } Java选择排序 Java快速排序