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:

A Guide to Spring Boot Admin
LinkedHashSet trong Java hoạt động như thế nào?
DynamoDB in a Spring Boot Application Using Spring Data
Java Program to Implement Iterative Deepening
Concrete Class in Java
Tổng quan về ngôn ngữ lập trình java
OAuth2.0 and Dynamic Client Registration
Java CyclicBarrier vs CountDownLatch
Using Java Assertions
Java Program to Implement Meldable Heap
Spring REST API + OAuth2 + Angular
Java Program to Implement Segment Tree
Java Program to Implement Find all Back Edges in a Graph
Logout in an OAuth Secured Application
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Hướng dẫn Java Design Pattern – State
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Java Program to Implement Merge Sort Algorithm on Linked List
Introduction to Spring Data MongoDB
Java Program to Find Nearest Neighbor for Static Data Set
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Spring Boot - Servlet Filter
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Implement ScapeGoat Tree
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Prevent Brute Force Authentication Attempts with Spring Security
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Giới thiệu Google Guice – Dependency injection (DI) framework
A Guide to Java HashMap