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:
Cài đặt và sử dụng Swagger UI
Spring Boot - CORS Support
Một số ký tự đặc biệt trong Java
Working with Network Interfaces in Java
Java Program to Implement Caesar Cypher
Comparing Long Values in Java
Spring Boot - Enabling Swagger2
Java Program to Implement Queue
Java Program to Find Basis and Dimension of a Matrix
Java 8 – Powerful Comparison with Lambdas
Kết hợp Java Reflection và Java Annotations
Java Program to Solve TSP Using Minimum Spanning Trees
An Intro to Spring Cloud Security
Using a List of Values in a JdbcTemplate IN Clause
Java 8 Predicate Chain
Java – Reader to String
Java Program to Find Transitive Closure of a Graph
Spring @RequestParam Annotation
Giới thiệu JDBC Connection Pool
Documenting a Spring REST API Using OpenAPI 3.0
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Intersection of Two Lists in Java
Thao tác với tập tin và thư mục trong Java
Bootstrap a Web Application with Spring 5
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Chuyển đổi giữa các kiểu dữ liệu trong Java
Hướng dẫn Java Design Pattern – Bridge
Calling Stored Procedures from Spring Data JPA Repositories
Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure)
Apache Commons Collections MapUtils
Sử dụng CyclicBarrier trong Java
wait() and notify() Methods in Java