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:

Weak References in Java
Introduction to Spring Data JDBC
Lập trình đa luồng với CompletableFuture trong Java 8
Bootstrapping Hibernate 5 with Spring
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
An Example of Load Balancing with Zuul and Eureka
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Jackson Annotation Examples
REST Web service: Upload và Download file với Jersey 2.x
Spring Boot Security Auto-Configuration
Java Program to Implement Word Wrap Problem
Câu lệnh điều khiển vòng lặp trong Java (break, continue)
Spring Boot - Google Cloud Platform
Redirect to Different Pages after Login with Spring Security
Instance Profile Credentials using Spring Cloud
Netflix Archaius with Various Database Configurations
Java InputStream to Byte Array and ByteBuffer
Java Program to Find Nearest Neighbor for Static Data Set
New in Spring Security OAuth2 – Verify Claims
Running Spring Boot Applications With Minikube
Java Program to Implement Radix Sort
Spring’s RequestBody and ResponseBody Annotations
Guide to java.util.concurrent.Locks
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Registration with Spring Security – Password Encoding
Java Program to Implement Singly Linked List
Call Methods at Runtime Using Java Reflection
Working with Kotlin and JPA
How to Remove the Last Character of a String?
Using a List of Values in a JdbcTemplate IN Clause
Spring Boot - Rest Template
Java Program to Generate a Random UnDirected Graph for a Given Number of Edges