Learn-c-by-examples-median-program-in-c

提供:Dev Guides
移動先:案内検索

Cの中央値プログラム

中央値は、ソートされたリストの中央の値です。 中央値にするには、リストを昇順または降順に並べ替える必要があります。

  • 例*では、入力リストとして3、5、2、7、3のリストを使用します。 中央値を見つけるために、最初に2、3、3、5、7として並べ替えます。 そして、場所3 _((5 + 1)/2)_は3であることがわかります。 したがって、このリストの中央値は3です。

アルゴリズム

このプログラムのアルゴリズムは非常に簡単です-

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

疑似コード

次のように、アルゴリズムに基づいて擬似コードを導出できます-

procedure median()

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

end procedure

実装

このアルゴリズムの実装は以下のとおりです-

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

出力

プログラムの出力は次のようになります-

Median = 5