Java Program to Implement Shell Sort

This is a java program to implement Shell Sort Algorithm.

Here is the source code of the Java Program to Implement Shell Sort. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

//This is a program to sort numbers using Shell Sort
import java.util.Random;
 
public class Shell_Sort 
{
    public static int N = 20;
    public static int[] sequence = new int[N];
 
    public static void shellSort() 
    {
        int increment = sequence.length / 2;
        while (increment > 0) 
        {
            for (int i = increment; i < sequence.length; i++) 
            {
                int j = i;
                int temp = sequence[i];
                while (j >= increment && sequence[j - increment] > temp) 
                {
                    sequence[j] = sequence[j - increment];
                    j = j - increment;
                }
                sequence[j] = temp;
            }
            if (increment == 2)
                increment = 1;
            else
                increment *= (5.0 / 11);
 
        }
    }
 
    static void printSequence(int[] sorted_sequence) 
    {
        for (int i = 0; i < sorted_sequence.length; i++)
            System.out.print(sorted_sequence[i] + " ");
    }
 
    public static void main(String args[]) 
    {
        System.out
                .println("Sorting of randomly generated numbers using SHELL SORT");
        Random random = new Random();
 
        for (int i = 0; i < N; i++)
            sequence[i] = Math.abs(random.nextInt(100));
 
        System.out.println("\nOriginal Sequence: ");
        printSequence(sequence);
 
        System.out.println("\nSorted Sequence: ");
        shellSort();
        printSequence(sequence);
    }
}

Output:

$ javac Shell_Sort.java
$ java Shell_Sort
 
Sorting of randomly generated numbers using BUBBLE SORT
 
Original Sequence: 
67 57 55 13 83 80 29 89 30 46 68 71 6 12 5 3 68 8 18 6 
Sorted Sequence: 
3 5 6 6 8 12 13 18 29 30 46 55 57 67 68 68 71 80 83 89

Related posts:

Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Debug a JavaMail Program
Guide to @ConfigurationProperties in Spring Boot
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
Java Program to Implement Sorted Circularly Singly Linked List
Spring Boot - Exception Handling
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Streams vs Vavr Streams
Default Password Encoder in Spring Security 5
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Spring Boot - Batch Service
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Using Spring @ResponseStatus to Set HTTP Status Code
Java Program to Perform the Unique Factorization of a Given Number
Convert Time to Milliseconds in Java
Java Program to Implement Stack API
Spring Boot - Internationalization
New Features in Java 12
Guide to the Fork/Join Framework in Java
Spring Boot - Tracing Micro Service Logs
Versioning a REST API
Rate Limiting in Spring Cloud Netflix Zuul
Java Program to Implement Solovay Strassen Primality Test Algorithm
Hướng dẫn sử dụng String Format trong Java
How To Serialize and Deserialize Enums with Jackson
Java Program to Find the Edge Connectivity of a Graph
Java Program to Implement Fermat Factorization Algorithm
Setting a Request Timeout for a Spring REST API
Introduction to the Java NIO Selector
Spring AMQP in Reactive Applications
Java Program to Implement Treap
Java Program to Implement Bresenham Line Algorithm