Shell排序

    希尔排序其实是一种改进的 直接插入排序:

package com.wjy.renren;

import java.util.Arrays;

public class ShellSort {

	public static void main(String args[]){
		int[] array={6,9,3,6,2,8,1,7,6,9};
		shellSort(array);
	}
	
	private static void shellSort(int[] array){
		int increment=array.length,pos=0,temp=0;
		while(true){
			increment=increment/2;
			for(int i=0;i<increment;i++){
				
				//其实以下部分就是直接插入排序
				for(int j=i+increment;j<array.length;j+=increment){
					pos=j-increment;
					temp=array[j];
					while(pos>=0&&(temp<array[pos])){
						array[pos+increment]=array[pos];
						pos-=increment;
					}
					array[pos+increment]=temp;
				}
				//其实以上部分就是直接插入排序
			}
			if(1==increment){
				break;
			}
		}
		System.out.println("ShellSort: "+Arrays.toString(array));
	}


}

 

你可能感兴趣的:(shell)