1. 程式人生 > >插入排序---希爾排序

插入排序---希爾排序

希爾排序是對直接插入排序的優化,比直接插入排序效率更快

 

 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 }