希尔排序

现在给定一个整数数组,请用希尔排序算法对该数组进行排序。
输入、输出描述
输入:
a:待排非空整数数组
输出:
排序后的数组
Example
输入:
a=[3,1,4,2]
输出:
[1,2,3,4]
代码:
import java.util.*;

public class Main {

  public static void main(String[]args){
  	
    int[] a=new int[]{3,1,2,4,6,5};
    int[] result=new Main().solution(a);
    System.out.println(Arrays.toString(result));
  }
 

 public int[] solution(int[] a) {

   int gap,j,temp,len=a.length;
   gap=len/2;
   while(gap>0){
     for(int i=gap;i<len;i++){
     	temp=a[i];
       j=i-gap;
       while(j>=0&&a[j]>temp){
       		a[j+gap]=a[j];
         j=j-gap;
       
       }
       a[j+gap]=temp;
     	
     }
     gap=gap/2;
   
   }
        return a;
    }
}
一个创业中的苦逼程序员
评论专区

隐藏