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:
Migrating from JUnit 4 to JUnit 5
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Java Program to Implement Hopcroft Algorithm
Java Program to Implement the One Time Pad Algorithm
Spring Boot With H2 Database
Quick Guide to java.lang.System
The Registration Process With Spring Security
Java Program to Check the Connectivity of Graph Using DFS
Java Program to implement Bi Directional Map
Deque và ArrayDeque trong Java
Overview of the java.util.concurrent
Connect through a Proxy
The Difference Between Collection.stream().forEach() and Collection.forEach()
Một số từ khóa trong Java
Spring Data JPA @Query
Java equals() and hashCode() Contracts
Hướng dẫn sử dụng Java Generics
Java Program to implement Bit Set
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Java Program to Implement Aho-Corasick Algorithm for String Matching
Java Program to Search for an Element in a Binary Search Tree
Interface trong Java 8 – Default method và Static method
Spring Security 5 – OAuth2 Login
Guide to the Java ArrayList
HttpClient with SSL
An Intro to Spring Cloud Zookeeper
Spring Boot - Application Properties
Java Program to Implement the RSA Algorithm
Java CyclicBarrier vs CountDownLatch
Comparing Two HashMaps in Java
Autoboxing và Unboxing trong Java
Giới thiệu SOAP UI và thực hiện test Web Service