#include "StdAfx.h" #include "Median.h" #include #include Median::Median() { } Median::~Median() { } double Median::getValue(int, vector, vector){ return 0; } double Median::getValue(vector, vector){ return 0; } double Median::getValue(vector ts){ double median; int size = ts.size(); sort(ts.begin(), ts.end()); if (size % 2 == 0) { median = (ts[size % 2 - 1] + ts[size % 2 + 1]) / 2; } else { median = ts[size / 2]; } return median; } vector Median::getValue(vector ts, int period){ int size = ts.size(); int amtPeriod = size / period; int shift = size - amtPeriod * period; vector median(amtPeriod); vector temp(period); int begin; int end; for (int i = 0; i < amtPeriod; i++) { begin = shift + i * period; end = begin + period; std::copy(ts.begin() + begin, ts.begin() + end, temp.begin()); median[i] = getValue(temp); } return median; }