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:
Lớp HashMap trong Java
Spring Boot - Hystrix
Immutable Objects in Java
Creating a Custom Starter with Spring Boot
Java Program to Implement Ternary Search Algorithm
Java Program to Implement Treap
ClassNotFoundException vs NoClassDefFoundError
Spring Data JPA @Modifying Annotation
Java Program to Implement Trie
How to Get All Dates Between Two Dates?
Java Program to Generate Random Numbers Using Probability Distribution Function
Using a Custom Spring MVC’s Handler Interceptor to Manage Sessions
Spring Cloud – Bootstrapping
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Spring Boot - Application Properties
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Java Program to Solve any Linear Equations
Spring Cloud AWS – S3
Instance Profile Credentials using Spring Cloud
Java Program to Perform Partition of an Integer in All Possible Ways
HttpClient Basic Authentication
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Emulate N Dice Roller
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
REST Web service: Upload và Download file với Jersey 2.x
Hướng dẫn Java Design Pattern – State
Java Program to Implement D-ary-Heap
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Java Program to Generate Random Numbers Using Multiply with Carry Method
Extract links from an HTML page
Guide to CopyOnWriteArrayList
Annotation trong Java 8