希尔排序算法的算法思想、动态演示、C++、python实现可以参考希尔排序算法详解
希尔排序是一种插入类排序。直接插入的加强版。
算法思想:参见希尔排序算法详解
算法的性能分析
希尔排序中相等数据可能会交换位置,所以希尔排序是不稳定的算法。
java实现希尔排序算法
public static int[] ShellSort(int[] arr){
int n=arr.length;
int gap=n/2;
while(gap>0){
for(int j=gap;j<n;j++){
for(int i=j;i>=gap;i-=gap)
if(arr[i]<arr[i-gap]){
int temp=arr[i];
arr[i]=arr[i-gap];
arr[i-gap]=temp;
}
}
gap=gap/2;
}
return arr;
}
总结
1.希尔排序又叫缩小增量排序。即增量前后进行比较。
2.注意增量的大小。每次n/2。
3.等到增量为1时就是直接插入排序。