import java.util.Arrays;
public class mnSum {
public static void main(String[] args) {
int arr[]= {8,9,1,7,2,3,5,4,6,0};
System.out.println(Arrays.toString(arr));
int length=arr.length;
for(int i=length/2;i>0;i/=2) {
int temp;
int k;
for(int j=i;j<length;j++) {
temp=arr[j];
for( k=j-i;k>=0;k-=i) {
if(temp<arr[k]) {
arr[k+i]=arr[k];
}
else {
break;
}
}
arr[k+i]=temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
1.希尔排序是直接插入排序的改进
2.希尔排序是一种非稳定算法
3.数的个数为length,i=length/2,将下标差值为i的数分为一组,构成有序序列
4.重复第二步直到i为1执行直接插入排序
5.注意缩写代码的逻辑问题,比如变量的范围,break语句的使用