Java Program to Implement Quick Sort with Given Complexity Constraint

This is a java program to perform quick sort with complexity constraint of time less than n^2.

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

package com.sanfoundry.combinatorial;
 
import java.util.Random;
 
public class QuickSortComplexityConstraint
{
    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 QUICK SORT with complexity less than n^2");
        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 QuickSortComplexityConstraint.java
$ java QuickSortComplexityConstraint
 
Sorting of randomly generated numbers using QUICK SORT with complexity less than n^2
 
Original Sequence: 
29 19 67 48 23 99 72 40 23 93 0 79 70 87 43 24 56 67 51 71 
Sorted Sequence: 
0 19 23 23 24 29 40 43 48 51 56 67 67 70 71 72 79 87 93 99

Related posts:

Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Spring Cloud AWS – S3
Java Program to Implement Stein GCD Algorithm
Java Program to Find Minimum Element in an Array using Linear Search
Handling URL Encoded Form Data in Spring REST
Java Program to Implement Binary Heap
Một số nguyên tắc, định luật trong lập trình
HttpClient 4 – Follow Redirects for POST
Java Program to Implement SynchronosQueue API
Logout in an OAuth Secured Application
Limiting Query Results with JPA and Spring Data JPA
Hướng dẫn Java Design Pattern – Iterator
Java Program to Find Nearest Neighbor for Dynamic Data Set
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Using JWT with Spring Security OAuth
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Tránh lỗi NullPointerException trong Java như thế nào?
Netflix Archaius with Various Database Configurations
Java Program to Generate Date Between Given Range
RegEx for matching Date Pattern in Java
Java Program to Construct K-D Tree for 2 Dimensional Data
Java Program to Implement Sorted Circularly Singly Linked List
Constructor Dependency Injection in Spring
Java NIO2 Path API
Guide to @ConfigurationProperties in Spring Boot
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Java Program to Implement Radix Sort
Java – Reader to String
Serialization và Deserialization trong java
Apache Commons Collections MapUtils
Initialize a HashMap in Java
Runnable vs. Callable in Java