Python :: Aufgabe #304 :: Lösung #3

4 Lösungen Lösungen öffentlich
#304

Median zweier zusammengefügter Arrays

Fortgeschrittener - Python von JKooP - 21.11.2020 um 07:46 Uhr
Es soll der Median (Zentralwert) eines sortierten Arrays,
das aus zwei (beliebig großen) zusammengefügten sortierten Arrays besteht, ermittelt werden.

Beispiele:
arr1 = [1, 3] arr2 = [2]
mergeSorted = [1, 2, 3] -> Median = 2

arr1 = [2, 4] arr2 = [1, 3]
mergeSorted = [1, 2, 3, 4] -> Median = 2.5
(wenn kein Zentralwert vorhanden ist, dann wird das arithmetische Mittel der beiden mittleren Zahlen ermittelt)
-> (2+3) / 2 = 2.5

Weitere Beispiele:
[0, 0] [0, 0] -> 0
[] [4] -> 4
[3] [] -> 3
[] [] -> 0
[-4, 4] [-2, 1] -> [-4, -2, 1, 4] -> -0.5

Fortgeschrittene können die Funktion/Methode dahingehend erweitern,
sodass sowohl mindestens 2 Arrays aufgenommen werden,
als auch auch ein Array bzw. eine Liste von Arrays verarbeitet werden kann.


Viel Spaß
#3
vote_ok
von vMaex (540 Punkte) - 30.01.2021 um 13:24 Uhr
Quellcode ausblenden Python-Code
arr1 = [1, 2, 3]
arr2 = [4, 5, 6]


def median():
    master_arr = arr1 + arr2
    master_arr.sort()

    if master_arr == []:
        print('Der Meridian ist: 0')
    else:
        laenge = len(master_arr)
        gerade_ungerade = laenge/2
        gerade_ungerade = str(gerade_ungerade).find('.5')

        if gerade_ungerade == -1:
            meridian2 = laenge // 2
            meridian1 = meridian2 - 1
            ergebnis = (master_arr[meridian1] + master_arr[meridian2]) / 2
            print('Der Meridian ist:', ergebnis)
        else:
            ergebnis = master_arr[int(laenge/2 - 0.5)]
            print('Der Meridian ist:', ergebnis)

median()

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben