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 - Admin Client
Java Program to Implement Sorted Array
Hashtable trong java
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux
New Features in Java 9
Template Engines for Spring
Spring WebClient and OAuth2 Support
Mệnh đề Switch-case trong java
Quick Intro to Spring Cloud Configuration
Generic Constructors in Java
HashSet trong Java hoạt động như thế nào?
Introduction to Using FreeMarker in Spring MVC
How to Read a Large File Efficiently with Java
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Java Program to Implement Best-First Search
Introduction to Spring Cloud Stream
Lớp Arrarys trong Java (Arrays Utility Class)
Spring Security Basic Authentication
ETags for REST with Spring
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Working with Tree Model Nodes in Jackson
Weak References in Java
TreeSet và sử dụng Comparable, Comparator trong java
Hướng dẫn Java Design Pattern – Composite
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Apache Tiles Integration with Spring MVC
A Quick JUnit vs TestNG Comparison
RegEx for matching Date Pattern in Java
Quick Guide to Spring MVC with Velocity
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Java Perform to a 2D FFT Inplace Given a Complex 2D Array