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:
Pagination and Sorting using Spring Data JPA
Add Multiple Items to an Java ArrayList
Uploading MultipartFile with Spring RestTemplate
A Guide to JUnit 5 Extensions
Functional Interfaces in Java 8
Serve Static Resources with Spring
Spring Security Login Page with React
Java Program to Implement Heap
Giới thiệu Java 8
Java Program to Implement LinkedBlockingDeque API
An Intro to Spring Cloud Task
Number Formatting in Java
JPA/Hibernate Persistence Context
Java Program to Create a Balanced Binary Tree of the Incoming Data
Handling URL Encoded Form Data in Spring REST
Guide to System.gc()
Derived Query Methods in Spring Data JPA Repositories
Java Program to Describe the Representation of Graph using Adjacency Matrix
Spring Boot - Servlet Filter
Hướng dẫn Java Design Pattern – Chain of Responsibility
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Spring Security OAuth2 – Simple Token Revocation
CharSequence vs. String in Java
Java Program to Implement Merge Sort Algorithm on Linked List
Java – Write an InputStream to a File
Java Program to Implement Skew Heap
Spring Boot - Introduction
Iterating over Enum Values in Java
Login For a Spring Web App – Error Handling and Localization
Java Program to Implement AttributeList API
Spring’s RequestBody and ResponseBody Annotations
Guide to CopyOnWriteArrayList