希尔排序

Posted ssdut_yrp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。

public class ArraySh 
    private long[] theArray;
    private int nElems;

    public ArraySh(int max)
        theArray=new long[max];
        nElems=0;
    

    public void insert(long value)
        theArray[nElems]=value;
        nElems++;
    

    public void display()
        System.out.print("A=");
        for(int j=0;j<nElems;j++)
            System.out.print(theArray[j]+" ");
        System.out.println("");
    

    public void shellSort()
        int inner,outer;
        long temp;
        int h=1;
        while(h<=nElems/3)//find initial value of h
            h=h*3+1;//1 4 13 40 121
        
        while(h>0)//decreasing h ,until h=1
            for(outer=h;outer<nElems;outer++)
                temp=theArray[outer];
                inner=outer;
                while(inner>h-1&&theArray[inner-h]>=temp)
                    theArray[inner]=theArray[inner-h];
                    inner-=h;
                
                theArray[inner]=temp;
            
            h=(h-1)/3;
        
    
public class ShellSortApp 
    /**
     * @param args
     */
    public static void main(String[] args) 
        // TODO Auto-generated method stub
        int maxSize=10;
        ArraySh arr;
        arr =new ArraySh(maxSize);
        for(int j=0;j<maxSize;j++)
            long n=(int) (Math.random()*99);
            arr.insert(n);
        
        arr.display();
        arr.shellSort();
        arr.display();
    

以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序

希尔排序

希尔排序

6.4 希尔排序

希尔排序

基础排序算法三——希尔排序