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:
A Guide to TreeSet in Java
Create a Custom Exception in Java
The Java 8 Stream API Tutorial
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Java – Reader to Byte Array
Introduction to Spring Data REST
Jackson Exceptions – Problems and Solutions
A Guide to Java SynchronousQueue
Comparing Two HashMaps in Java
Overflow and Underflow in Java
Guava Collections Cookbook
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Mảng (Array) trong Java
Sending Emails with Java
Java Program to Implement Jarvis Algorithm
Java Program to Print only Odd Numbered Levels of a Tree
Vòng lặp for, while, do-while trong Java
Spring Boot: Customize Whitelabel Error Page
Convert char to String in Java
Từ khóa this và super trong Java
Convert a Map to an Array, List or Set in Java
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Implement Caesar Cypher
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Working with Tree Model Nodes in Jackson
Java – Delete a File
Sorting in Java
Guide to BufferedReader
Java Program to Create a Random Linear Extension for a DAG
Mệnh đề if-else trong java
Java Program to Implement Sparse Array
Using JWT with Spring Security OAuth (legacy stack)