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.