排序系列之希尔排序

来源:互联网 发布:深圳gdp超广州 知乎 编辑:程序博客网 时间:2024/05/22 12:38

希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序。

public class ShellSort {public static void shellSortLg3(int a[]){int length = a.length;int i = 1;for(;i<length;i=3*i+1);while(i>0){System.out.println(i);insert(a,0,length,i);i = (i-1)/3;}}public static void shellSortLg2(int a[]){int length = a.length;int i = length>>1;while(i>0){insert(a,0,length,i);i >>= 1;}}public static void insert(int a[], int low, int high,int n) {for (int i = low + n; i < high;i += n) {int j = i, key = a[i];if (a[j-=n] > key) {do {a[j + n] = a[j];} while ((j -= n) >= low && a[j] > key);a[j + n] = key;}}}}


原创粉丝点击