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));
	}


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值