Programme médian en C

Une valeur médiane est la valeur au centre d'une liste triée. Pour médian, nous devons trier la liste par ordre croissant ou décroissant.

For Exampleprenez la liste de 3, 5, 2, 7, 3 comme liste d'entrée. Pour trouver la médiane, nous la réordonnons d'abord comme 2, 3, 3, 5, 7. et nous trouvons qu'à l'emplacement 3 ((5 + 1) / 2) est 3. La valeur de la médiane dans cette liste est 3.

Algorithme

L'algorithme de ce programme est très simple -

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

Pseudocode

Nous pouvons dériver un pseudocode basé sur l'algorithme, comme -

procedure median()
   
   Array A
   Size  N
   SORT(A)
   middle = (N + 1) / 2
   DISPLAY A[middle] as median

end procedure

la mise en oeuvre

La mise en œuvre de cet algorithme est donnée ci-dessous -

#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;
}

Production

Le résultat du programme doit être -

Median = 5