first_array = [0,2,3,6,8,10] second_array = [1,3,5,7,9,11] # Array zur Aufnahme der Elemente der beiden anderen Arrays merged_array = [] # Anzahl der Elemente in beiden Arrays bestimmen # 1b läuft sonst nicht # für 1c bräuchte man das sowieso elements_count_first = len(first_array) elements_count_second = len(second_array) # Wir prüfen, ob beiden Arrays gleich viele Elemente enthalten if (elements_count_first == elements_count_second): # Wenn ja, hängen wir nacheinander die Elemente vom ersten und zweiten Array an for i in range(0,elements_count_first): merged_array.append(first_array[i]) merged_array.append(second_array[i]) ################################################################################## (bekannt, s.o.) # Wenn beide Arrays ungleiche Anzahlen von Elementen enthalten, müssen wir anders vorgehen # Sonst laufen wir z.B. in der Schleife über die Anzahl der Elemente heraus else: # Wir schauen, welches Array das größere ist # ... und setzen einen Zeiger entsprechend # smaller ist jetzt das kleinere, bigger des größere Array # Man kann damit genau so arbeiten wie mit den Ursprungsarrays if (elements_count_first > elements_count_second): bigger = first_array smaller = second_array else: smaller = first_array bigger = second_array # die erforderliche Laufweite wird durch das größere Array bestimmt for i in range(0,len(bigger)): # nur ausführen, wenn es noch Elemente im kleineren Array gibt if i < len(smaller): # Damit es sortiert bleibt, müssen wir schauen, welches Array an der Stelle i # das jeweils kleinere Element enthält und in dieser Reihenfolge mergen if (smaller[i] < bigger[i] ): merged_array.append(smaller[i]) merged_array.append(bigger[i]) else: merged_array.append(bigger[i]) merged_array.append(smaller[i]) # Sonst hängen wir einfach die Elemente des größeren Arrays hintereinander weg else: merged_array.append(bigger[i]) # Ausgabe des neuen Arrays zur Kontrolle print(merged_array)