Ich versuche, Merge-Sort in Python zu implementieren, und ich würde gerne wissen, was ist die Python-Art von Looping durch zwei Listen nur eine der Listen durchlaufen jede Schleife.Wie durchlaufe ich zwei Listen, die jeweils nur eine durchlaufen?
Dies ist, was ich jetzt habe
def merge(array1, array2):
final = []
i = 0
j = 0
while i < len(array1) or j < len(array2):
if array1[i] <= array2[j]:
final.append(array1[i])
i += 1
elif array2[j] < array1[i]:
final.append(array2[j])
j += 1
# Finished one of the arrays
if i == len(array1):
final.extend(array2[j:])
break
elif j == len(array2):
final.extend(array1[i:])
break
return final
Dank (Indizes verwenden).
'while True:' + Flusskontrolle innerhalb der Schleife, die das Inkrementieren behandelt + eine Möglichkeit, dass der Code "bricht". So ähnlich wie das, was Sie tun –
Dies wird fehlschlagen, da, wenn 'i> = len (array1)' aber 'j
Du solltest die Frage nicht auf das Wissen von merge-sort stützen. Es wird mehr Aufmerksamkeit bekommen, wenn Sie es generisch machen, und es wird nicht mit Bugs oder Korrekturen des Algorithmus verwechselt. – slezica