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 Perform Stooge Sort
4 tính chất của lập trình hướng đối tượng trong Java
Spring Security – security none, filters none, access permitAll
Java Program to Perform Finite State Automaton based Search
Java Program to Implement Stack
Spring Boot - Zuul Proxy Server and Routing
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Spring WebClient Requests with Parameters
Collect a Java Stream to an Immutable Collection
Java Program to Implement Bucket Sort
Java – Create a File
Hướng dẫn Java Design Pattern – Service Locator
LIKE Queries in Spring JPA Repositories
Java 8 Streams peek() API
Java Program to Decode a Message Encoded Using Playfair Cipher
The XOR Operator in Java
Java Program to Implement Min Hash
Sending Emails with Java
Converting Strings to Enums in Java
Java Program to Find Nearest Neighbor Using Linear Search
Sorting in Java
Java – Combine Multiple Collections
Transactions with Spring and JPA
Sử dụng CountDownLatch trong Java
Java Program to Check Whether Graph is DAG
Spring Data JPA @Query
Java Program to Implement Circular Singly Linked List
Java – Get Random Item/Element From a List
Hướng dẫn Java Design Pattern – Dependency Injection
Java Program to Implement AttributeList API
Logging in Spring Boot
Java Program to Find Minimum Element in an Array using Linear Search