Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình tính Mean và Median của mảng chưa sắp xếp trong C++


Cho mảng chưa sắp xếp. Nhiệm vụ: tính Mean (trung bình cộng) và Median (trung vị).

Mean (Trung bình cộng)

$$Mean = \frac{\sum_{i=1}^n arr[i]}{n}$$

Median (Trung vị)

  • Sắp xếp mảng trước.
  • Nếu n lẻ: Median = arr[n/2].
  • Nếu n chẵn: Median = (arr[(n-1)/2] + arr[n/2]) / 2.0.

Ví dụ 1

Input – arr[] = {3, 5, 2, 1, 7, 8}

Output

Mean: 4.33333
Median: 4

Giải thích: Tổng = 26, n=6 → Mean = 26/6 = 4.333. Sắp xếp: [1,2,3,5,7,8]. Median = (3+5)/2 = 4.

Ví dụ 2

Input – arr[] = {1, 3, 4, 2, 6, 5, 8, 7}

Output

Mean: 4.5
Median: 4.5

Ví dụ code

#include <bits/stdc++.h>
using namespace std;

double mean(int arr[], int n) {
    long long sum = 0;
    for (int i = 0; i < n; i++) sum += arr[i];
    return (double)sum / n;
}

double median(int arr[], int n) {
    sort(arr, arr + n);
    if (n % 2 == 1) return arr[n / 2];
    return (arr[(n-1)/2] + arr[n/2]) / 2.0;
}

int main() {
    int arr[] = {3, 5, 2, 1, 7, 8};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Mean: " << mean(arr, n) << endl;
    cout << "Median: " << median(arr, n) << endl;
    return 0;
}

Kết quả

Mean: 4.33333
Median: 4

Độ phức tạp: Mean O(N), Median O(N log N) do sort. Có thể tìm median O(N) dùng nth_element hoặc QuickSelect.