java 希尔排序

我们知道,插入排序可以高速处理数据较为整齐的数据,而希尔排序就是能充分发挥这一特色的算法。

希尔排序中,程序会重复进行以间隔为div的元素作为处理对象进行插入排序。

public static int [] ShellSort(int []a,int len) {
		if(len<1||a==null) {
			return null;
		}
		 for(int div=len/2;div>=1;div=div/2)//定增量div,并不断减小
		   {
		        for(int i=0;i<=div;++i)        //分组成div组
		        {
		         for(int j=i;ja[k]){
		        	 //交换两个数的值
		        	 a[j]^=a[k];
		        	 a[k]^=a[j];
		        	 a[j]^=a[k];
		         }
		        }
		    }
		 return a;
	}

你可能感兴趣的:(java,排序算法)