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 Implement Circular Singly Linked List
Java Program to Implement Hash Tables
Java Program to Implement the MD5 Algorithm
Java Program to Implement LinkedBlockingDeque API
Java Program to Implement Caesar Cypher
Java 8 Predicate Chain
Sorting Query Results with Spring Data
Concurrent Test Execution in Spring 5
Arrays.asList vs new ArrayList(Arrays.asList())
Java Program to Implement RoleList API
HttpClient Connection Management
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Immutable Objects in Java
Apache Camel with Spring Boot
Spring Cloud Connectors and Heroku
Java 8 Stream findFirst() vs. findAny()
Handling URL Encoded Form Data in Spring REST
MyBatis with Spring
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Spring RestTemplate Request/Response Logging
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Array to String Conversions
Spring Security Login Page with React
Finding the Differences Between Two Lists in Java
Convert Time to Milliseconds in Java
Introduction to Spring Method Security
Java Program to Construct an Expression Tree for an Infix Expression
Notify User of Login From New Device or Location
Send an email using the SMTP protocol
Introduction to Netflix Archaius with Spring Cloud
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range
Spring Boot Application as a Service