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 Sorted Circular Doubly Linked List
Java Program to Implement Bit Array
Using a Custom Spring MVC’s Handler Interceptor to Manage Sessions
Hướng dẫn Java Design Pattern – Interpreter
Java Program to Check Whether Topological Sorting can be Performed in a Graph
Java Program to Implement PriorityBlockingQueue API
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Java Program to Implement Merge Sort Algorithm on Linked List
Java Program to Implement Stein GCD Algorithm
Error Handling for REST with Spring
4 tính chất của lập trình hướng đối tượng trong Java
Java Program to Implement Rope
Java Program to Implement RenderingHints API
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Beans and Dependency Injection
Overview of Spring Boot Dev Tools
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Difference Between Wait and Sleep in Java
Java Program to Implement a Binary Search Tree using Linked Lists
Java Program to Check whether Directed Graph is Connected using BFS
What is a POJO Class?
Custom Thread Pools In Java 8 Parallel Streams
How to Kill a Java Thread
Inject Parameters into JUnit Jupiter Unit Tests
Java Program to Implement ArrayList API
Java – InputStream to Reader
Checking for Empty or Blank Strings in Java
Debugging Reactive Streams in Java
Java Program to Convert a Decimal Number to Binary Number using Stacks
Guide to java.util.concurrent.Locks
Java Program to Implement Circular Singly Linked List
Java Program to Implement Bellman-Ford Algorithm