Sunday, 31 July 2016

SHELL SORT JAVA


import java.util.Arrays;
import java.util.Scanner;


public class ShellSort {

public static void Sort( int arr[] )
{
int inner, outer;
int valueToInsert;
int interval = 1;  
int i = 0;
 
while(interval <= arr.length/3) {
interval = interval*3 +1;                  
}

while(interval > 0) {
System.out.println("iteration #:" + i);
System.out.println(Arrays.toString(arr));

for(outer = interval; outer < arr.length; outer++) {
valueToInsert = arr[outer];
inner = outer;

while(inner > interval -1 && arr[inner - interval]
>= valueToInsert) {
arr[inner] = arr[inner - interval];
inner -=interval;
System.out.println(" item moved: " + arr[inner] + "\n");
}
       
arr[inner] = valueToInsert;
System.out.println(" item inserted :" + valueToInsert + " at position " + inner +"\n");
}

interval = (interval -1) /3;          
i++;
}        
}

public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner scan = new Scanner( System.in );      
        System.out.println("Shell Sort\n");
        int n, i;
        /* Accept number of elements */
        System.out.println("Enter number of integer elements");
        n = scan.nextInt();
        /* Create integer array on n elements */
        int arr[] = new int[ n ];
        /* Accept elements */
        System.out.println("\nEnter "+ n +" integer elements");
        for (i = 0; i < n; i++)
            arr[i] = scan.nextInt();
        Sort(arr);
        System.out.println("\nElements after sorting ");      
        for (i = 0; i < n; i++)
            System.out.print(arr[i]+" ");          
        System.out.println();    
}

}

No comments:

Post a Comment