Ich bin ein Anfänger Programmierer und ich habe versucht, meinen eigenen Sortieralgorithmus in Python zu erstellen, ich verstehe nicht, warum es nur einige der Zahlen ausgibt, die in der Eingabe vorhanden waren. Ich habe Debug-Prints überall hingelegt, um das Problem zu verstehen, aber ich habe immer noch nichts. Der Code sollte die größte Zahl des Eingabe-Arrays finden und zum letzten Array bewegen, und zwar so lange, bis das Eingabe-Array leer ist, aber es scheint an einem bestimmten Punkt zu stoppen. Es gab eine Person mit einer similar problem aber die Lösung galt auch nicht für mich. Dies ist der Code: (. Und es gibt zwei 5s im Eingang)Was ist falsch an meinem Sortieralgorithmus?
array = [3, 6, 25, 4, 5, 24, 7, 15, 5, 2, 0, 8, 1] #just random numbers
output = []
while(len(array) > 0):
maximum = 0
for x in array:
maximum = max(maximum, x)
output.append(maximum)
tempArray = []
for x in array:
temp = array.pop()
if(temp < maximum):
tempArray.append(temp)
array = tempArray
print(output)
Könnten Sie bitte Ihre genaue Ausgabe posten? – LaneL
Debugging-Tipp: Beginnen Sie mit kleineren Testfällen. Das macht es viel einfacher zu bestimmen, ob Ihre Annahmen über wie ein Programm funktioniert. Ihr Programm scheitert an '[1,2 ] ', zum Beispiel – molbdnilo
@LaneL Die Ausgabe ist: [25, 15, 7, 5] – Hexwell