This is a java program to find K such elements given by users, such that those numbers are closer to the median of the given sequence. We first find the median of the sequence and then compare with each element such that the difference between the median and number is minimum, and print such k elements.
Here is the source code of the Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers. 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 k numbers closest to median of N numbers import java.util.Random; import java.util.Scanner; public class K_Close_Numbers_Median { static int N = 25; static int[] sequence = new int[N]; public static void sort() { int i, j, temp; for (i = 1; i < N; i++) { j = i; temp = sequence[i]; while (j > 0 && temp < sequence[j - 1]) { sequence[j] = sequence[j - 1]; j = j - 1; } sequence[j] = temp; } } public static int median() { if(N%2 == 0) return ((sequence[N/2-1] + sequence[N/2])/2); else return sequence[N/2]; } public static void main(String args[]) { Random random = new Random(); for(int i=0; i<N; i++) sequence[i] = Math.abs(random.nextInt(100)); sort(); System.out.println("The Sequence is: "); for(int i=0; i<N; i++) System.out.print(sequence[i] + " "); int median = median(); System.out.println("\nEnter the number of elements close to median you want: "); Scanner sc = new Scanner(System.in); int k = sc.nextInt(); int i, j; if(N%2 == 0) { i = N/2-1; j = N/2; } else { i = N/2-1; j = N/2+1; } boolean flag = false; int n; for(n=0; n<k; n++) { if(median-sequence[i] < sequence[j]-median) { System.out.print(sequence[i] + " "); i--; if(i == -1) { n++; flag = true; break; } } else { System.out.print(sequence[j] + " "); j++; if(j == N) { n++; break; } } } while(n < k) { if(flag == true) { System.out.print(sequence[j] + " "); j++; n++; } else { System.out.print(sequence[i] + " "); i--; n++; } } } }
Output:
$ javac K_Close_Number_Median.java $ java K_Close_Number_Median The Sequence is: 3 6 14 17 21 27 27 35 35 38 38 40 40 41 41 43 55 67 73 77 79 82 82 83 87 Enter the number of elements close to median you want: 5 40 41 41 38 38
Related posts:
Constructor Dependency Injection in Spring
Reading an HTTP Response Body as a String in Java
Java Program to Perform integer Partition for a Specific Case
Serialization và Deserialization trong java
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Display Auto-Configuration Report in Spring Boot
Spring Cloud AWS – S3
Hướng dẫn sử dụng Java Generics
Java Program to Implement Pairing Heap
Java Program to Implement Splay Tree
Introduction to Spring Security Expressions
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Java Program to Implement Euclid GCD Algorithm
Array to String Conversions
Spring Data JPA @Query
List Interface trong Java
Spring Boot - Sending Email
XML-Based Injection in Spring
Java Program to Implement Gaussian Elimination Algorithm
Collect a Java Stream to an Immutable Collection
Java – Byte Array to Reader
A Guide to JPA with Spring
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Java Program to Implement Heap Sort Using Library Functions
Java Program to Find Nearest Neighbor for Dynamic Data Set
Java Program to Construct K-D Tree for 2 Dimensional Data
The Thread.join() Method in Java
Java Program to Implement ArrayDeque API
Spring Boot Gradle Plugin
Java Program to Implement Queue
What is a POJO Class?
Spring Cloud – Securing Services