插入排序---希尔排序

希尔排序是对直接插入排序的优化,比直接插入排序效率更快

 1 public class ShellSort {
 2         
 3     public static void main(String[] args) {
 4         int[] arr=new int[]{3,5,2,8,4,10,2,1,18,11};
 5         System.out.println(Arrays.toString(arr));
 6         shellSort(arr);
 7         System.out.println(Arrays.toString(arr));
 8     }
 9     
10     public static void shellSort(int[] arr){
11         //遍历所有的步长
12         for(int d=arr.length/2;d>0;d/=2){
13             //遍历所有元素
14             for(int i=d;i<arr.length;i++){
15                 //遍历本组中元素
16                 for(int j=i-d;j>=0;j-=d){
17                     //如果当前元素大于加上步长后的那个元素
18                     if(arr[j]>arr[j+d]){
19                         int temp=arr[j];
20                         arr[j]=arr[j+d];
21                         arr[j+d]=temp;
22                     }
23                   }
24                 }
25             }
26         }
27 }

猜你喜欢

转载自www.cnblogs.com/axu521/p/9978127.html
今日推荐