// shellSort.java // demonstrates shell sort // to run this program: C>java ShellSortApp //-------------------------------------------------------------- class ArraySh { private long[] theArray; // ref to array theArray private int nElems; // number of data items //-------------------------------------------------------------- public ArraySh(int max) // constructor { theArray = new long[max]; // create the array nElems = 0; // no items yet } //-------------------------------------------------------------- public void insert(long value) // put element into array { theArray[nElems] = value; // insert it nElems++; // increment size } //-------------------------------------------------------------- public void display() // displays array contents { System.out.print("A="); for(int j=0; j0) // decreasing h, until h=1 { // h-sort the file for(outer=h; outer h-1 && theArray[inner-h] >= temp) { theArray[inner] = theArray[inner-h]; inner -= h; } theArray[inner] = temp; } // end for h = (h-1) / 3; // decrease h } // end while(h>0) } // end shellSort() //-------------------------------------------------------------- } // end class ArraySh //////////////////////////////////////////////////////////////// class ShellSortApp { public static void main(String[] args) { int maxSize = 10; // array size ArraySh arr; arr = new ArraySh(maxSize); // create the array for(int j=0; j