Java Program to Implement Quick Sort Using Randomization

This is a java program to perform sorting using Randomized Quick Sort. Randomized Quick Sort randomly selects a pivot element, after selecting pivot standard procedure is to be followed as quick sort.

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

//This is a java program to sort numbers using randomized quick sort
import java.util.Random;
 
public class Randomized_Quick_Sort 
{
    public static int N = 20;
    public static int[] sequence = new int[N];
 
    public static void QuickSort(int left, int right) 
    {
        if (right - left <= 0)
            return;
        else 
        {
            Random rand = new Random();
            int pivotIndex = left + rand.nextInt(right - left + 1);
            swap(pivotIndex, right);
 
            int pivot = sequence[right];
            int partition = partitionIt(left, right, pivot);
            QuickSort(left, partition - 1);
            QuickSort(partition + 1, right);
        }
    }
 
    public static int partitionIt(int left, int right, long pivot) 
    {
        int leftPtr = left - 1;
        int rightPtr = right;
        while (true) 
        {
            while (sequence[++leftPtr] < pivot)
                ;
            while (rightPtr > 0 && sequence[--rightPtr] > pivot)
                ;
 
            if (leftPtr >= rightPtr)
                break;
            else
                swap(leftPtr, rightPtr);
        }
        swap(leftPtr, right);
        return leftPtr;
    }
 
    public static void swap(int dex1, int dex2) 
    {
        int temp = sequence[dex1];
        sequence[dex1] = sequence[dex2];
        sequence[dex2] = temp;
    }
 
    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 RANDOMIZED QUICK 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: ");
        QuickSort(0, N - 1);
        printSequence(sequence);
    }
}

Output:

$ javac Randomized_Quick_Sort.java
$ java Randomized_Quick_Sort
 
Sorting of randomly generated numbers using RANDOMIZED QUICK SORT
 
Original Sequence: 
98 95 22 64 77 49 11 98 56 63 84 18 9 68 4 69 2 20 68 4 
Sorted Sequence: 
2 4 4 9 11 18 20 22 49 56 63 64 68 68 69 77 84 95 98 98

Related posts:

Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Guide to Escaping Characters in Java RegExps
Java Program to Implement Hash Tables with Quadratic Probing
Exploring the New Spring Cloud Gateway
Java Program to Find Number of Articulation points in a Graph
Documenting a Spring REST API Using OpenAPI 3.0
A Guide to TreeMap in Java
Comparing Dates in Java
Lớp lồng nhau trong java (Java inner class)
Java Program to Implement Heap Sort Using Library Functions
Java Program to Implement Hash Tables with Linear Probing
Java Program to Implement PriorityQueue API
Jackson – JsonMappingException (No serializer found for class)
Spring Boot - Tracing Micro Service Logs
Exception Handling in Java
A Guide to the Java ExecutorService
Java Program to Implement Hash Tables with Double Hashing
Java Program to Perform Left Rotation on a Binary Search Tree
The DAO with Spring and Hibernate
Jackson – Bidirectional Relationships
Comparing Objects in Java
String Initialization in Java
Lập trình đa luồng với Callable và Future trong Java
Kiểu dữ liệu Ngày Giờ (Date Time) trong java
Java Program to Implement a Binary Search Tree using Linked Lists
How to Manually Authenticate User with Spring Security
Tạo chương trình Java đầu tiên sử dụng Eclipse
Spring Boot - Admin Client
Guide To CompletableFuture
Batch Processing with Spring Cloud Data Flow
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS