Python :: Aufgabe #304 :: Lösung #1
4 Lösungen
#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ß
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ß
#1
von Klaus (1960 Punkte)
- 30.11.2020 um 21:03 Uhr
test_data = [
[[1, 3], [2]],
[[2, 4], [1, 3]],
[[0, 0], [0, 0]],
[[], [4]],
[[3], []],
[[], []],
[[-4, 4], [-2, 1]]
]
def median(list_of_arrays):
combined_array = []
print('arrays = ', end='')
for array in list_of_arrays:
print(f'{array} ', end='')
combined_array += array
combined_array.sort()
print(f'\nmerged sorted array = {combined_array}')
if not combined_array:
median = 0
elif len(combined_array) == 1:
median = combined_array[0]
elif len(combined_array) % 2 == 1:
median = combined_array[len(combined_array) // 2]
else:
median = (combined_array[len(combined_array) // 2 - 1] + combined_array[len(combined_array) // 2]) / 2
print(f'median = {median}\n')
for array in test_data:
median(array)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
