यदि लिस्ट के एलिमेंट्स क्रम में व्यवस्थित हैं, तो वह मध्य मान जो आइटम्स को दो भागों में विभाजित करता है जिनमें दोनों तरफ समान संख्या में आइटम्स हों, माध्यिका कहलाता है।
विषम संख्या के आइटम्स का केवल एक मध्य मान होता है जबकि; सम संख्या के आइटम्स के दो मध्य मान होते हैं।
इसलिए सम संख्या के आइटम्स के लिए माध्यिका को उन दो मध्य मानों के औसत के रूप में नामित किया जाता है।
एल्गोरिथ्म
माध्यिका की गणना का एल्गोरिथ्म:
- आइटम्स को ऐरे में पढ़ें जबकि आइटम्स की गिनती रखें।
- आइटम्स को बढ़ते क्रम में सॉर्ट करें।
- माध्यिका की गणना करें।
माध्यिका खोजने से पहले नंबरों को सॉर्ट करने के लिए उपयोग की जाने वाली लॉजिक:
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("आइटम्स की संख्या दर्ज करें\n");
scanf("%d", &n);
/* ऐरे a में आइटम्स पढ़ना */
printf("%d मान दर्ज करें \n", n);
for (i = 1; i <= n; i++)
scanf("%f", &a[i]);
/* सॉर्टिंग शुरू */
for (i = 1; i <= n-1; i++) { /* ट्रिप-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];
/* प्रिंट करना */
for (i = 1; i <= n; i++)
printf("%f ", a[i]);
printf("\n\nमाध्यिका है %f\n", median);
}
आउटपुट
आइटम्स की संख्या दर्ज करें 5 5 मान दर्ज करें 2.3 1.2 3.8 4.6 8.9 8.900000 4.600000 3.800000 2.300000 1.200000 माध्यिका है 3.800000