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:
“Stream has already been operated upon or closed” Exception in Java
Weak References in Java
ExecutorService – Waiting for Threads to Finish
Lớp lồng nhau trong java (Java inner class)
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Java Program to Implement Levenshtein Distance Computing Algorithm
How to Set TLS Version in Apache HttpClient
Java Program to Implement Lloyd’s Algorithm
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Spring MVC Content Negotiation
Ways to Iterate Over a List in Java
Java Program to Implement Hash Tables with Linear Probing
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Describe the Representation of Graph using Incidence Matrix
Receive email using IMAP
The DAO with Spring and Hibernate
Java program to Implement Tree Set
Java Program to implement Circular Buffer
Java Program to Find a Good Feedback Vertex Set
Java Program to Implement Binary Tree
Java Scanner hasNext() vs. hasNextLine()
Guide to the Volatile Keyword in Java
Java Program to Implement Radix Sort
Java Program to Check the Connectivity of Graph Using DFS
Chuyển đổi giữa các kiểu dữ liệu trong Java
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Java Program to Implement Brent Cycle Algorithm
Finding the Differences Between Two Lists in Java
Hướng dẫn Java Design Pattern – Iterator
Comparing Long Values in Java
Java Program to Implement Uniform-Cost Search
An Introduction to Java.util.Hashtable Class