목록의 요소를 순서대로 정렬하면 항목을 양쪽에 동일한 수의 항목으로 두 부분으로 나누는 중간 값을 중앙값이라고 합니다.
홀수 개수의 항목에는 중간 값이 하나만 있는 반면, 짝수개의 항목에는 두 개의 중간 값이 있습니다.
따라서 짝수 항목의 중앙값은 두 중간 값의 평균으로 지정됩니다.
알고리즘
중앙값을 계산하려면 아래의 알고리즘을 참조하십시오.
1단계 - 항목 수를 유지하면서 항목을 배열로 읽습니다.
2단계 - 항목을 오름차순으로 정렬합니다.
3단계 - 중앙값을 계산합니다.
중앙값을 찾기 전에 숫자를 정렬하는 데 사용되는 논리는 다음과 같습니다. -
for (i = 1 ; i <= n-1 ; i++){
for (j = 1 ; j <= n-i ; j++){
if (a[j] <= a[j+1]){
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
} else
continue ;
}
} 목록의 중앙값을 찾는 데 사용되는 논리는 다음과 같습니다. -
if ( n % 2 == 0) median = (a[n/2] + a[n/2+1])/2.0 ; else median = a[n/2 + 1];
예시
다음은 주어진 숫자의 중앙값을 계산하는 C 프로그램입니다 -
#include<stdio.h>
#define N 10
main( ){
int i,j,n;
float median,a[N],t;
printf("Enter the number of items\n");
scanf("%d", &n);
/* Reading items into array a */
printf("Input %d values \n",n);
for (i = 1; i <= n ; i++)
scanf("%f", &a[i]);
/* Sorting begins */
for (i = 1 ; i <= n-1 ; i++){ /* Trip-i begins */
for (j = 1 ; j <= n-i ; j++) {
if (a[j] <= a[j+1]) { /* Interchanging values */
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
else
continue ;
}
} /* sorting ends */
/* calculation of median */
if ( n % 2 == 0)
median = (a[n/2] + a[n/2+1])/2.0 ;
else
median = a[n/2 + 1];
/* Printing */
for (i = 1 ; i <= n ; i++)
printf("%f ", a[i]);
printf("\n\nMedian is %f\n", median);
} 출력
위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -
Enter the number of items 5 Input 5 values 2.3 1.2 3.8 4.6 8.9 8.900000 4.600000 3.800000 2.300000 1.200000 Median is 3.800000