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:
Guide to the Java ArrayList
Java Program to Check whether Undirected Graph is Connected using BFS
SOAP Web service: Authentication trong JAX-WS
Java Program to Implement Floyd Cycle Algorithm
Shuffling Collections In Java
HttpClient 4 – Send Custom Cookie
Tính kế thừa (Inheritance) trong java
Java Program to find the peak element of an array using Binary Search approach
Java Program to Implement Merge Sort Algorithm on Linked List
Spring Boot - Google OAuth2 Sign-In
Spring Cloud Series – The Gateway Pattern
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Program to implement Sparse Vector
Java Program to Implement Min Hash
Chuyển đổi Array sang ArrayList và ngược lại
Jackson vs Gson
Java Program to Implement Naor-Reingold Pseudo Random Function
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Java Program to Implement Direct Addressing Tables
So sánh Array và ArrayList trong Java
Java Program to Implement Jarvis Algorithm
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Daemon Threads in Java
Java Program to Represent Graph Using 2D Arrays
Properties with Spring and Spring Boot
Remove the First Element from a List
Java Program to Implement Solovay Strassen Primality Test Algorithm
Connect through a Proxy
Java Timer
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Java 8 StringJoiner
Java Program to Implement Binary Search Tree