blob: e9932e8131d21b806135532222b2826a61f6768f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <vector>
#include <algorithm>
#include <stdexcept>
double median(std::vector<double> vec)
{
std::vector<double>::size_type mid, size;
size = vec.size();
if (size == 0)
throw std::domain_error("median of an empty vector");
sort(vec.begin(), vec.end());
mid = size / 2;
return size % 2 == 0 ? (vec[mid] + vec[mid - 1]) / 2
: vec[mid];
}
|