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:
Using a Spring Cloud App Starter
Guide To CompletableFuture
How to Store Duplicate Keys in a Map in Java?
Split a String in Java
Java Program to Implement LinkedHashMap API
Partition a List in Java
Constructor Dependency Injection in Spring
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Java Program to Represent Graph Using Adjacency List
Java – Random Long, Float, Integer and Double
JPA/Hibernate Persistence Context
Adding Parameters to HttpClient Requests
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Lấy ngày giờ hiện tại trong Java
Java Program to Implement Johnson’s Algorithm
MyBatis with Spring
Java Program to Implement ConcurrentHashMap API
Jackson vs Gson
Upload and Display Excel Files with Spring MVC
Java Program to Implement Lloyd’s Algorithm
A Guide To UDP In Java
Spring Data Reactive Repositories with MongoDB
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java – Convert File to InputStream
Spring WebClient Requests with Parameters
Comparing Arrays in Java
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Hướng dẫn Java Design Pattern – DAO
Java Program to Implement Pagoda