未排序数组的平均值和中位数的程序
给定n大小的未排序数组,找到它的平均值和中位数。
Mean of an array = (sum of all elements) / (number of elements)
大小为 n 的排序数组的中位数在 n 为奇数时定义为中间元素,在 n 为偶数时定义为中间两个元素的平均值。
由于这里没有对数组进行排序,所以我们先对数组进行排序,然后应用上面的公式。
例子:
Input : a[] = {1, 3, 4, 2, 6, 5, 8, 7}
Output : Mean = 4.5
Median = 4.5
Sum of the elements is 1 + 3 + 4 + 2 + 6 +
5 + 8 + 7 = 36
Mean = 36/8 = 4.5
Since number of elements are even, median
is average of 4th and 5th largest elements.
which means (4 + 5)/2 = 4.5
Input : a[] = {4, 4, 4, 4, 4}
Output : Mean = 4
Median = 4
下面是代码实现:
C++
// CPP program to find mean and median of
// an array
#include
using namespace std;
// Function for calculating mean
double findMean(int a[], int n)
{
int sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];
return (double)sum / (double)n;
}
// Function for calculating median
double findMedian(int a[], int n)
{
// First we sort the array
sort(a, a + n);
// check for even case
if (n % 2 != 0)
return (double)a[n / 2];
return (double)(a[(n - 1) / 2] + a[n / 2]) / 2.0;
}
// Driver code
int main()
{
int a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };
int n = sizeof(a) / sizeof(a[0]);
// Function call
cout << "Mean = " << findMean(a, n) << endl;
cout << "Median = " << findMedian(a, n) << endl;
return 0;
}
Java
// Java program to find mean
// and median of an array
import java.util.*;
class GFG
{
// Function for calculating mean
public static double findMean(int a[], int n)
{
int sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];
return (double)sum / (double)n;
}
// Function for calculating median
public static double findMedian(int a[], int n)
{
// First we sort the array
Arrays.sort(a);
// check for even case
if (n % 2 != 0)
return (double)a[n / 2];
return (double)(a[(n - 1) / 2] + a[n / 2]) / 2.0;
}
// Driver code
public static void main(String args[])
{
int a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };
int n = a.length;
// Function call
System.out.println("Mean = " + findMean(a, n));
System.out.println("Median = " + findMedian(a, n));
}
}
// This article is contributed by Anshika Goyal.
Python3
# Python3 program to find mean
# and median of an array
# Function for calculating mean
def findMean(a, n):
sum = 0
for i in range(0, n):
sum += a[i]
return float(sum/n)
# Function for calculating median
def findMedian(a, n):
# First we sort the array
sorted(a)
# check for even case
if n % 2 != 0:
return float(a[int(n/2)])
return float((a[int((n-1)/2)] +
a[int(n/2)])/2.0)
# Driver code
a = [1, 3, 4, 2, 7, 5, 8, 6]
n = len(a)
# Function call
print("Mean =", findMean(a, n))
print("Median =", findMedian(a, n))
# This code is contributed by Smitha Dinesh Semwal
C#
// C# program to find mean
// and median of an array
using System;
class GFG
{
// Function for
// calculating mean
public static double findMean(int[] a, int n)
{
int sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];
return (double)sum / (double)n;
}
// Function for
// calculating median
public static double findMedian(int[] a, int n)
{
// First we sort
// the array
Array.Sort(a);
// check for
// even case
if (n % 2 != 0)
return (double)a[n / 2];
return (double)(a[(n - 1) / 2] + a[n / 2]) / 2.0;
}
// Driver Code
public static void Main()
{
int[] a = { 1, 3, 4, 2, 7, 5, 8, 6 };
int n = a.Length;
// Function call
Console.Write("Mean = " + findMean(a, n) + "\n");
Console.Write("Median = " + findMedian(a, n)
+ "\n");
}
}
// This code is contributed by Smitha .
PHP
Javascript
输出
Mean = 4.5
Median = 4.5
求均值的时间复杂度= O(n)
找到中位数的时间复杂度= O(n Log n),因为我们需要先对数组进行排序。请注意,我们可以使用此处和此处讨论的方法在 O(n) 时间内找到中位数。