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:
Merging Two Maps with Java 8
Java Program to Perform Insertion in a 2 Dimension K-D Tree
A Guide to EnumMap
Checked and Unchecked Exceptions in Java
Quick Guide to the Java StringTokenizer
Hướng dẫn Java Design Pattern – Object Pool
The Order of Tests in JUnit
Hướng dẫn Java Design Pattern – Memento
DistinctBy in the Java Stream API
Difference Between Wait and Sleep in Java
Java Program to Implement Graph Structured Stack
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Spring Boot With H2 Database
Setting a Request Timeout for a Spring REST API
Guide to Apache Commons CircularFifoQueue
Java Program to Compare Binary and Sequential Search
Java Program to Implement Extended Euclid Algorithm
Converting String to Stream of chars
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Spring Cloud – Tracing Services with Zipkin
A Guide to Spring Boot Admin
Using Optional with Jackson
Java Program to Generate Random Numbers Using Probability Distribution Function
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Java – InputStream to Reader
Chuyển đổi từ HashMap sang ArrayList
Copy a List to Another List in Java
Introduction to Spring Boot CLI
Receive email using POP3
Zipping Collections in Java
Implementing a Runnable vs Extending a Thread