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:
Queue và PriorityQueue trong Java
Java Program to Implement Find all Forward Edges in a Graph
An Intro to Spring Cloud Contract
Java Program to Solve the Fractional Knapsack Problem
Guide to Dynamic Tests in Junit 5
A Guide to Apache Commons Collections CollectionUtils
Hướng dẫn Java Design Pattern – Flyweight
Extra Login Fields with Spring Security
Serverless Functions with Spring Cloud Function
Java Program to Describe the Representation of Graph using Adjacency Matrix
Ignore Null Fields with Jackson
Spring WebClient Requests with Parameters
Java Program to Implement Hash Tables Chaining with List Heads
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Basic Authentication with the RestTemplate
Generating Random Numbers in a Range in Java
Java Program to Solve a Matching Problem for a Given Specific Case
Binary Numbers in Java
Java Program to Implement Direct Addressing Tables
Tips for dealing with HTTP-related problems
Java IO vs NIO
How to Read a Large File Efficiently with Java
Static Content in Spring WebFlux
Spring Cloud Bus
Java Program to Solve TSP Using Minimum Spanning Trees
Dockerizing a Spring Boot Application
Spring Autowiring of Generic Types
Guide to the Synchronized Keyword in Java
Java – File to Reader
Java Program to Check Multiplicability of Two Matrices
A Guide to the Java LinkedList