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:
Spring Boot - Twilio
Java Program to Implement the Checksum Method for Small String Messages and Detect
Build a REST API with Spring and Java Config
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Giới thiệu Aspect Oriented Programming (AOP)
Add Multiple Items to an Java ArrayList
Control Structures in Java
Java Program to Implement Bubble Sort
Java Program to Solve a Matching Problem for a Given Specific Case
Introduction to Liquibase Rollback
Java Program to Implement Min Hash
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Java Program to Check whether Graph is Biconnected
Cài đặt và sử dụng Swagger UI
Handling URL Encoded Form Data in Spring REST
Java Program to implement Associate Array
Java Program to Implement Queue
Java Program to Describe the Representation of Graph using Adjacency Matrix
Connect through a Proxy
Converting Iterator to List
Java 14 Record Keyword
Java Program to Implement Find all Cross Edges in a Graph
Java Program to Implement Repeated Squaring Algorithm
Set Interface trong Java
Spring Boot - Servlet Filter
Java Program to Implement Pagoda
Spring – Injecting Collections
Java Program to Implement HashTable API
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Bootstrapping Hibernate 5 with Spring
Guide to Escaping Characters in Java RegExps
Java Program to Implement ScapeGoat Tree