Oblicz medianę wartości przechowywanych w wektorze - C ++?
Jestem studentem programowania i dla projektu, nad którym pracuję, jedną z rzeczy, które muszę zrobić, jest obliczenie mediany wartości wektorów int. Mam to zrobić, używając tylko funkcji sortowania z STL i funkcji składowych wektora, takich jak.begin()
, .end()
, i.size()
.
Mam także upewnić się, że znajduję medianę, czy wektor ma nieparzystą liczbę wartości, czy parzystą liczbę wartości.
A ja jestemOblepiony, poniżej zawarłem moją próbę. Więc gdzie się mylę? Byłbym wdzięczny, gdybyś chciał dać mi kilka wskazówek lub zasobów, aby iść w dobrym kierunku.
Kod:
int CalcMHWScore(const vector<int>& hWScores)
{
const int DIVISOR = 2;
double median;
sort(hWScores.begin(), hWScores.end());
if ((hWScores.size() % DIVISOR) == 0)
{
median = ((hWScores.begin() + hWScores.size()) + (hWScores.begin() + (hWScores.size() + 1))) / DIVISOR);
}
else
{
median = ((hWScores.begin() + hWScores.size()) / DIVISOR)
}
return median;
}
Dzięki!!