यदि सूची के तत्वों को क्रम में व्यवस्थित किया जाता है, तो मध्य मान जो वस्तुओं को दो भागों में विभाजित करता है और दोनों ओर समान संख्या में आइटमों को माध्यिका कहा जाता है।
विषम संख्या में वस्तुओं का केवल एक मध्य मान होता है जबकि; सम संख्याओं में दो मध्य मान होते हैं।
इसलिए मदों की सम संख्या के लिए माध्यिका को दो मध्य मानों के औसत के रूप में निर्दिष्ट किया जाता है।
एल्गोरिदम
माध्यिका की गणना करने के लिए नीचे दिए गए एल्गोरिथम को देखें।
चरण 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