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 Synchronized Keyword in Java
Java Program to Implement HashMap API
The DAO with Spring and Hibernate
Java Map With Case-Insensitive Keys
The Order of Tests in JUnit
Convert XML to JSON Using Jackson
Java Program to Implement Control Table
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Spring Boot - Bootstrapping
Optional trong Java 8
Java Program to Implement Vector API
Notify User of Login From New Device or Location
Wrapper Classes in Java
CyclicBarrier in Java
Java Program to Implement Sieve Of Eratosthenes
Using Spring @ResponseStatus to Set HTTP Status Code
Read an Outlook MSG file
Java Program to Convert a Decimal Number to Binary Number using Stacks
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
A Guide to BitSet in Java
Java Program to Find Number of Articulation points in a Graph
Java Collections Interview Questions
Java Program to Implement Binomial Tree
Debug a JavaMail Program
Auditing with JPA, Hibernate, and Spring Data JPA
Constructor Injection in Spring with Lombok
Introduction to Project Reactor Bus
Java Program to Implement Merge Sort Algorithm on Linked List
Giới thiệu JDBC Connection Pool
Using the Not Operator in If Conditions in Java
Documenting a Spring REST API Using OpenAPI 3.0
Xử lý ngoại lệ trong Java (Exception Handling)