This is a java program to perform sorting using Randomized Quick Sort. Randomized Quick Sort randomly selects a pivot element, after selecting pivot standard procedure is to be followed as quick sort.
Here is the source code of the Java Program to Implement Quick Sort Using Randomization. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to sort numbers using randomized quick sort
import java.util.Random;
public class Randomized_Quick_Sort
{
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 RANDOMIZED QUICK SORT");
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 Randomized_Quick_Sort.java $ java Randomized_Quick_Sort Sorting of randomly generated numbers using RANDOMIZED QUICK SORT Original Sequence: 98 95 22 64 77 49 11 98 56 63 84 18 9 68 4 69 2 20 68 4 Sorted Sequence: 2 4 4 9 11 18 20 22 49 56 63 64 68 68 69 77 84 95 98 98
Related posts:
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Transaction Propagation and Isolation in Spring @Transactional
An Intro to Spring Cloud Task
How to Iterate Over a Stream With Indices
Java Program to Implement JobStateReasons API
Spring Boot - Enabling HTTPS
Java Program to Implement Heap
Java Program to Find the Shortest Path from Source Vertex to All Other Vertices in Linear Time
Java Program to implement Circular Buffer
Basic Authentication with the RestTemplate
Understanding Memory Leaks in Java
New Features in Java 10
Convert Hex to ASCII in Java
Java Program to Implement TreeMap API
Java Program to Generate Date Between Given Range
Spring REST API + OAuth2 + Angular (using the Spring Security OAuth legacy stack)
Servlet 3 Async Support with Spring MVC and Spring Security
Java Program to Implement Max Heap
Java Program to Implement Skew Heap
Java Deep Learning Essentials - Yusuke Sugomori
Spring MVC and the @ModelAttribute Annotation
Unsatisfied Dependency in Spring
How to Implement Caching using Adonis.js 5
Spring Boot - Hystrix
Java Program to find the number of occurrences of a given number using Binary Search approach
Java Program to Implement ScapeGoat Tree
Custom HTTP Header with the HttpClient
How to Count Duplicate Elements in Arraylist
Guide to Spring @Autowired
Java Program to Find All Pairs Shortest Path
Object Type Casting in Java
Inheritance with Jackson