C-Programm, um den Median von zwei sortierten Arrays gleicher Größe zu finden

C-Programm, um den Median von zwei sortierten Arrays gleicher Größe zu finden

In diesem Blogbeitrag lernen wir, wie man ein C-Programm schreibt, um den Median von zwei sortierten Arrays gleicher Größe zu finden? Hier schreiben wir also das C-Programm, um den Median von zwei sortierten Arrays gleicher Größe zu finden. Wir werden auch sehen, wie man den Median zweier gegebener sortierter Arrays arr1 und arr2 der Größe N mit C-Programmierung anzeigt.

Aber bevor ich mit der Programmierung beginne, möchte ich den Median erklären. Grundsätzlich ist Median ein Element, das das Array in zwei Teile links und rechts teilt. Sehen wir uns also an, wie wir den Median eines Arrays ermitteln können.

1. Ordnen Sie die Array-Elemente vom kleinsten zum größten an (hier ist das Array bereits sortiert, also brauchen Sie das nicht).

2. Wenn die Anzahl der Elemente im Array ungerade ist, ist der Median das mittlere Element in der Liste.

Beispiel

//Given input integer sorted array

Input: arr[] = {0, 1, 2, 3, 4};

Output: 2

Explanation: There is an odd number of elements (5), 
so the median is the middle element that is 2

Im Allgemeinen gilt für ein Array aus n Elementen, wobei n eine ungerade Zahl ist, der Median:

ArrayMedian =>  (n+1)/2  

3. Wenn die Anzahl der Elemente im Array gerade ist, ist der Median der Durchschnitt der beiden mittleren Elemente.

Beispiel

//Given input integer sorted array
Input: arr[] = {0, 1, 2, 3};

Output: (1+2)/2 = > 1.5

Explanation: The median is the mean of the middle two numbers 1 and 2.

Im Allgemeinen gilt für ein Array aus n Elementen, wobei n eine gerade Zahl ist, der Median:

ArrayMedian =  (m1+m2)/2 Element, wobei m1 und m2 zwei mittlere Zahlen sind.

Hinweis: Beide Arrays sind gleich groß, daher müssen wir den Median mit geraden Techniken berechnen. Da 2n immer eine gerade Zahl ist, ist der Median der Durchschnitt der beiden mittleren Zahlen.

Wenn Sie mehr über die Sprache C erfahren möchten, können Sie diesen Kurs besuchen, kostenlose Testversion verfügbar.

Holen Sie sich Ihre kostenlose Testversion

C-Programm, um einen Median von zwei sortierten Arrays gleicher Größe zu finden

#include <stdio.h>
#include <stdlib.h>

//Calculate array size
#define ARRAY_SIZE(a)  sizeof(a)/sizeof(a[0])


//return median of two sorted array of same size
int findMedianTwoSameSizeSortedArray(int arr1[], int arr2[], int n)
{
    int arr1Index = 0;
    int arr2Index = 0;
    int cnt;
    int median1 = -1, median2 = -1;


    for (cnt = 0; cnt <= n; cnt++)
    {
        if (arr1Index == n)
        {
            //all elements of arr1[] are
            //smaller than arr2[0]
            median1 = median2;
            median2 = arr2[0];
            break;
        }
        else if (arr2Index == n)
        {
            //all elements of arr2[] are
            //smaller than arr1[0]
            median1 = median2;
            median2 = arr1[0];
            break;
        }

        if (arr1[arr1Index] <= arr2[arr2Index])
        {
            //Store the prev median
            median1 = median2;
            median2 = arr1[arr1Index];
            arr1Index++;
        }
        else
        {
            //Store the prev median
            median1 = median2;
            median2 = arr2[arr2Index];
            arr2Index++;
        }
    }

    return (median1 + median2)/2;
}


int main()
{
    int arr1[] = {1, 12, 15, 26, 38};
    int arr2[] = {2, 13, 17, 30, 45};

    const int N1 = ARRAY_SIZE(arr1);
    const int N2 = ARRAY_SIZE(arr2);

    if (N1 == N2)
    {
        printf("Median is %d", findMedianTwoSameSizeSortedArray(arr1, arr2, N1));
    }
    else
    {
        printf("Doesn't work for arrays of unequal size");
    }

    return 0;
}

Empfohlene Artikel für Sie:

  • Bestes Geschenk für Programmierer.
  • Beste elektronische Kits für Programmierer.
  • C-Programm zum Ermitteln der Länge der längsten aufeinanderfolgenden Elementsequenz aus dem gegebenen unsortierten Array von Ganzzahlen.
  • C-Programm, um die erste und letzte Position eines Elements in einem sortierten Array zu finden
  • Schreiben Sie ein C-Programm, um die fehlende Zahl in einem gegebenen Integer-Array von 1 bis n zu finden
  • C-Programm, um das beliebteste Element in einem Array zu finden
  • Finde das größte und kleinste Element in einem Array mit C-Programmierung.
  • C-Programm, um sogar vorkommende Elemente in einem Array mit begrenztem Bereich zu finden
  • Finde die Summe aller Sub-Arrays eines gegebenen Arrays.
  • C-Programm zum Trennen gerader und ungerader Zahlen
  • Finde ein Element in einem Array, bei dem die Summe des linken Arrays gleich der Summe des rechten Arrays ist.
  • C-Programm, um die Anzahl der geraden und ungeraden Elemente im Array zu finden.
  • C-Programm schreiben, um die Summe von Array-Elementen zu finden.
  • C-Programm, um ungerade vorkommende Elemente in einem Array mit begrenztem Bereich zu finden
  • Finde die Summe von Array-Elementen mit Rekursion
  • C-Programm zum Umkehren der Elemente eines Arrays
  • C-Programm zum Finden des maximalen und minimalen Elements im Array
  • Berechnen Sie die Größe eines Arrays in ohne sizeof in C
  • Wie erstelle ich ein dynamisches Array in C?
  • Wie greife ich auf 2D-Arrays in C zu?
  • Dangling-, Void-, Null- und Wild-Zeiger