Advertisement
chevengur

СПРИНТ №1 | Базовые алгоритмы | Урок 4: Алгоритмы sort и reverse 2/2

Sep 5th, 2023 (edited)
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. pair<bool, double> CalcMedian(vector<double> samples) {
  8.     if (samples.empty()) {
  9.         return { false, 0 };
  10.     }
  11.  
  12.     sort(samples.begin(), samples.end());
  13.  
  14.     auto index = samples.size() / 2;
  15.    
  16.  
  17.     if (samples.size() % 2 == 0) {
  18.         return { true, (samples[index] + samples[index - 1])/2};
  19.     }
  20.     else {
  21.         return { true, samples[index] };
  22.     }
  23. }
  24.  
  25. int main() {
  26.     int size;
  27.     cin >> size;
  28.  
  29.     vector<double> samples;
  30.     for (int i = 0; i < size; ++i) {
  31.         double sample;
  32.         cin >> sample;
  33.         samples.push_back(sample);
  34.     }
  35.  
  36.     pair<bool, double> result = CalcMedian(samples);
  37.     if (result.first) {
  38.         cout << result.second << endl;
  39.     }
  40.     else {
  41.         cout << "Empty vector"s << endl;
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement