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 Edmond’s Algorithm for Maximum Cardinality Matching
Guide to PriorityBlockingQueue in Java
Spring Cloud AWS – Messaging Support
Hướng dẫn Java Design Pattern – Factory Method
Jackson Ignore Properties on Marshalling
Sắp xếp trong Java 8
Hướng dẫn Java Design Pattern – Observer
Câu lệnh điều khiển vòng lặp trong Java (break, continue)
Lập trình hướng đối tượng (OOPs) trong java
Notify User of Login From New Device or Location
Introduction to Spring Cloud Stream
Java Program to Implement Queue
Pagination and Sorting using Spring Data JPA
Java Program to Solve TSP Using Minimum Spanning Trees
Guava – Join and Split Collections
Spring MVC Custom Validation
HttpClient Basic Authentication
Java Program to Generate Random Numbers Using Probability Distribution Function
Java Program to Check Multiplicability of Two Matrices
Java Program to Implement Find all Forward Edges in a Graph
Java Program to implement Circular Buffer
Spring Data JPA @Query
Hướng dẫn sử dụng Java Annotation
Jackson – Bidirectional Relationships
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Hướng dẫn Java Design Pattern – Transfer Object
Sorting in Java
Query Entities by Dates and Times with Spring Data JPA
Java – InputStream to Reader
Java Program to Implement Nth Root Algorithm
Introduction to the Functional Web Framework in Spring 5
Guide to java.util.Formatter