首先先来简单的插入排序这是基础。
```Javapublic class Main {
public static void main(String[] args) {
int [] arr = {3,8,7,11,2,9,5,6};
int j ;
for(int i =1;i=0 ; j--) {
if (key
```
而希尔排序就是在插入排序的基础上进行的改良。
希尔排序是把记录按下标的增量进行分组,然后再用直接插入排序进行算法排序,当增量减少到1的时候就分成一组了,排序也就完成了。
```Javaimport java.util.Arrays;
public class Main {
public static void sort(int[] a){
int h = 1;
while(h=1){//h=7,3,1
for(int i = h;i=h;j-=h){
if(a[j-h]>a[j]){
int temp = a[j-h];
a[j-h] = a[j];
a[j] = temp;
}else{
break;
}
}
}
h/=2;
}
}
public static void main(String[] args) {
int[] a = {6,8,5,4,3,9,2,1,7};
sort(a);
System.out.println(Arrays.toString(a));
}
}
```



