This is a java program to find kth smallest element form the given sequence of numbers. This could be solved by using Quick sort algorithm, where we partition around the pivot element, the entire sequence of numbers is broken down to two, we arrange the number such that numbers smaller than pivot is kept in the first sequence and numbers larger than the pivot is kept in the second sequence. During this comparison we find the kth smallest element.
Here is the source code of the Java Program to Find kth Smallest Element by the Method of Partitioning the Array. 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 find kth smallest element form the randomly generated sequence using partitioning
import java.util.Random;
import java.util.Scanner;
public class Kth_Smallest_Partitioning
{
public static int N = 20;
public static int[] A = new int[N];
public static void swap(int dex1, int dex2)
{
int temp = A[dex1];
A[dex1] = A[dex2];
A[dex2] = temp;
}
public static int partition(int start, int end)
{
int i = start + 1;
int j = i;
int pivot = start;
for (; i < end; i++)
{
if (A[i] < A[pivot])
{
swap(i, j);
j++;
}
}
if (j <= end)
swap(pivot, (j - 1));
return j - 1;
}
public static void quick_sort(int start, int end, int K) {
int part;
if (start < end)
{
part = partition(start, end);
if (part == K - 1)
System.out.println("kth smallest element : " + A[part]);
if (part > K - 1)
quick_sort(start, part, K);
else
quick_sort(part + 1, end, K);
}
return;
}
public static void main(String args[])
{
Random random = new Random();
for (int i = 0; i < N; i++)
A[i] = random.nextInt(1000);
System.out.println("The original sequence is: ");
for (int i = 0; i < N; i++)
System.out.print(A[i] + " ");
Scanner sc = new Scanner(System.in);
System.out.println("\nEnter the Kth smallest you want to find: ");
int k = sc.nextInt();
quick_sort(0, N, k);
sc.close();
}
}
Output:
$ javac Kth_Smallest_Partitioning.java $ java Kth_Smallest_Partitioning The original sequence is: 811 30 934 118 942 89 855 917 474 194 630 887 916 997 851 550 917 841 343 202 Enter the Kth smallest you want to find: 3 kth smallest element : 118
Related posts:
Tránh lỗi NullPointerException trong Java như thế nào?
Vòng lặp for, while, do-while trong Java
Java Program to Implement Graph Coloring Algorithm
Java Program to implement Bi Directional Map
Một số ký tự đặc biệt trong Java
Runnable vs. Callable in Java
Java Program to Implement Vector API
Introduction to PCollections
Java Program to Implement Interpolation Search Algorithm
Apache Camel with Spring Boot
Guide to CopyOnWriteArrayList
Java Program to Perform Insertion in a BST
So sánh HashMap và HashSet trong Java
Java Program to Implement the One Time Pad Algorithm
Extract network card address
4 tính chất của lập trình hướng đối tượng trong Java
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
A Guide to Spring Cloud Netflix – Hystrix
Running Spring Boot Applications With Minikube
Using the Map.Entry Java Class
Spring Boot Integration Testing with Embedded MongoDB
Finding the Differences Between Two Lists in Java
Java Program to Implement Quick Sort Using Randomization
Java Program to Implement Stack
Getting a File’s Mime Type in Java
Java Program to Implement Attribute API
Jackson – JsonMappingException (No serializer found for class)
New Features in Java 15
Prevent Cross-Site Scripting (XSS) in a Spring Application
Lớp Collections trong Java (Collections Utility Class)
ExecutorService – Waiting for Threads to Finish
Abstract class và Interface trong Java