Programma mediano in C
Un valore mediano è il valore al centro di un elenco ordinato. Per mediana dobbiamo ordinare l'elenco in ordine crescente o decrescente.
For Exampleprendere la lista di 3, 5, 2, 7, 3 come nostra lista di input. Per scoprire la mediana, prima la riordiniamo come 2, 3, 3, 5, 7. e troviamo che nella posizione 3 ((5 + 1) / 2) è 3. Quindi il valore della mediana in questa lista è 3.
Algoritmo
L'algoritmo di questo programma è molto semplice -
START
Step 1 → Take an integer list A of n values
Step 2 → Arrange the values in the list in some order, say ascending
Step 3 → Calculate the middle of list → (n + 1) / 2
Step 4 → Display the middle value as median
STOP
Pseudocodice
Possiamo derivare lo pseudocodice basato sull'algoritmo, come -
procedure median()
Array A
Size N
SORT(A)
middle = (N + 1) / 2
DISPLAY A[middle] as median
end procedure
Implementazione
L'implementazione di questo algoritmo è fornita di seguito:
#include <stdio.h>
void swap(int *p,int *q) {
int t;
t=*p;
*p=*q;
*q=t;
}
void sort(int a[],int n) {
int i,j,temp;
for(i = 0;i < n-1;i++) {
for(j = 0;j < n-i-1;j++) {
if(a[j] > a[j+1])
swap(&a[j],&a[j+1]);
}
}
}
int main() {
int a[] = {6,3,8,5,1};
int n = 5;
int sum,i;
sort(a,n);
n = (n+1) / 2 - 1; // -1 as array indexing in C starts from 0
printf("Median = %d ", a[n]);
return 0;
}
Produzione
Il risultato del programma dovrebbe essere:
Median = 5