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:
Java Program to Implement EnumMap API
Registration – Password Strength and Rules
Concrete Class in Java
Tiêu chuẩn coding trong Java (Coding Standards)
Java Program to Find the Mode in a Data Set
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
String Initialization in Java
Spring WebClient Requests with Parameters
REST Web service: Basic Authentication trong Jersey 2.x
Java Program to Implement Shell Sort
Java Program to Represent Graph Using Adjacency List
Java Program to Implement Hash Tables
Generic Constructors in Java
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Filtering a Stream of Optionals in Java
HttpClient with SSL
Guide to @ConfigurationProperties in Spring Boot
Tính kế thừa (Inheritance) trong java
Getting Started with Forms in Spring MVC
Reversing a Linked List in Java
Quick Guide on Loading Initial Data with Spring Boot
Object cloning trong java
Giới thiệu SOAP UI và thực hiện test Web Service
Spring Boot - Admin Client
Java Multi-line String
Set Interface trong Java
Java Copy Constructor
Java Program to Implement LinkedList API
Lập trình mạng với java
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
An Example of Load Balancing with Zuul and Eureka
Hướng dẫn Java Design Pattern – Builder