Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
49 lines (45 loc) · 1.71 KB

File metadata and controls

49 lines (45 loc) · 1.71 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.thealgorithms.maths;
import java.util.Arrays;
/**
* Utility class for calculating the median of an array of integers.
* The median is the middle value in a sorted list of numbers. If the list has
* an even number
* of elements, the median is the average of the two middle values.
*
* <p>
* Time Complexity: O(n log n) due to sorting
* <p>
* Space Complexity: O(1) if sorting is done in-place
*
* @see <a href="https://en.wikipedia.org/wiki/Median">Median (Wikipedia)</a>
* @see <a href=
* "https://www.khanacademy.org/math/statistics-probability/summarizing-quantitative-data/mean-median-basics/a/mean-median-and-mode-review">Mean,
* Median, and Mode Review</a>
*/
public final class Median {
private Median() {
}
/**
* Calculates the median of an array of integers.
* The array is sorted internally, so the original order is not preserved.
* For arrays with an odd number of elements, returns the middle element.
* For arrays with an even number of elements, returns the average of the two
* middle elements.
*
* @param values the array of integers to find the median of (can be unsorted)
* @return the median value as a double
* @throws IllegalArgumentException if the input array is empty or null
*/
public static double median(int[] values) {
if (values == null || values.length == 0) {
throw new IllegalArgumentException("Values array cannot be empty or null");
}
Arrays.sort(values);
int length = values.length;
if (length % 2 == 0) {
return (values[length / 2] + values[length / 2 - 1]) / 2.0;
} else {
return values[length / 2];
}
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.