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:
Java Program to Check whether Undirected Graph is Connected using BFS
Send email with authentication
Java Program to Solve the Fractional Knapsack Problem
Java Program to Implement Ternary Search Tree
Java Program to Implement Pairing Heap
Java Program to Construct K-D Tree for 2 Dimensional Data
Giới thiệu Google Guice – Dependency injection (DI) framework
Spring Boot - Exception Handling
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Java Program to Implement Graph Structured Stack
Java Program to Perform LU Decomposition of any Matrix
Spring Security and OpenID Connect
A Guide to EnumMap
The HttpMediaTypeNotAcceptableException in Spring MVC
Spring Boot - Quick Start
Java Program to Implement String Matching Using Vectors
Java Program to Show the Duality Transformation of Line and Point
How To Serialize and Deserialize Enums with Jackson
Java Program to Implement Quick sort
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Introduction to the Java NIO Selector
Exploring the Spring Boot TestRestTemplate
Java Program to Implement Hash Tables with Quadratic Probing
Intro to Inversion of Control and Dependency Injection with Spring
Java Program to Create a Random Linear Extension for a DAG
Concatenating Strings In Java
Apache Commons Collections MapUtils
Introduction to Spring Data JPA
Java Program to Implement Hash Trie
Giới thiệu Google Guice – Binding
Java Program to Construct an Expression Tree for an Prefix Expression
Spring Cloud AWS – Messaging Support