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:
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Reactive WebSockets with Spring 5
Hướng dẫn Java Design Pattern – Observer
Map to String Conversion in Java
Jackson JSON Views
Chương trình Java đầu tiên
Java Program to Describe the Representation of Graph using Adjacency List
HttpClient 4 – Send Custom Cookie
Java Program to Implement the Monoalphabetic Cypher
Java Program to Implement Shunting Yard Algorithm
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Serve Static Resources with Spring
Java Program to Implement Solovay Strassen Primality Test Algorithm
Spring Security Authentication Provider
DynamoDB in a Spring Boot Application Using Spring Data
Creating a Generic Array in Java
Java Program to Implement LinkedList API
Java Program to Solve any Linear Equations
Java Program to Implement Interpolation Search Algorithm
Notify User of Login From New Device or Location
Java Program to Implement Trie
What is a POJO Class?
Netflix Archaius with Various Database Configurations
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Hướng dẫn Java Design Pattern – Proxy
Java Program to Check the Connectivity of Graph Using DFS
Spring Boot - OAuth2 with JWT
Java Program to Implement Find all Cross Edges in a Graph
Java Program to Implement Bellman-Ford Algorithm
Spring Data JPA and Null Parameters