import java.util.*;
public class ShellSort {
public int[] shellSort(int[] a, int n) {
//先判断条件
if(a== null|| n<2){
return a;
}
int feet = n/2;
int index =0;
while(feet > 0){
for(int i=feet;i<n;i++){
index = i;
while(index >= feet){
if(a[index] <a[index-feet]){
swap(a,index,index-feet);
index-=feet;
}else{
break;
}
}
}
feet = feet/2;
}
return a;
}
public void swap(int[] a,int big,int little){
int temp = a[little];
a[little] = a[big];
a[big] = temp;
}
}
希尔排序(Shell Sort)又叫做缩小增量排序(diminishing increment sort),是一种很优秀的排序法,算法本身不难理解,也很容易实现,而且它的速度很快。
Shell排序通过将数据分成不同的组,先对每一组进行排序,然后再对所有的元素进行一次插入排序,以减少数据交换和移动的次数。