Es ist nicht das erste Mal, dass ich es implementiere, aber ich dachte, ich würde einen Artikel schreiben, weil ich dachte, er wäre etwas tiefer als als als Anfänger. Ich finde diese Blasensorte, die Bewegung ist sehr schön. Das Prinzip der schönen Dinge ist nicht intuitiv. Ich denke, dass die Möglichkeit, nach Vertrautheit zu sortieren, Trumps Hand ist, aber ich habe diese Blasensortierung nie in der elementaren Ausrichtung verwendet. (Hast du welche? Lol)
bubble_sort.py
def bubble_sort(A):
flag = 1
i = 0
while flag:
flag = 0
for j in range(len(A)-1,i,-1):
if A[j] < A[j-1]:
A[j],A[j-1] = A[j-1],A[j]
flag = 1
i += 1
return A
Das Argument ist ein beliebiges Array, und das sortierte Array wird zurückgegeben.
Schleifenvariable i -Der Anfang des sortierten Arrays ・ Sie erhöht sich von Anfang an um 1 -Die Endbedingung ist, wenn die Sortierung abgeschlossen ist = wenn kein Elementaustausch stattfindet (ausgedrückt durch Flag)
Schleifenvariable j
flag ・ Wird für eine Weile als Fortsetzung verwendet ・ Wenn es einen Elementaustausch gibt, wird er 1 und die nächste Schleife wird fortgesetzt.
Ich dachte, ich sollte einfach eine for-Anweisung von Anfang bis Ende sein! Bei der Blasensortierung hört eine Schleife jedoch erst auf, wenn alle Elemente überprüft wurden, sodass viele Male nutzlose Vergleiche durchgeführt werden. Korrekt. Ich war froh, als ich verstand, dass ich es beenden würde, wenn es keinen Austausch mit einer Variablen namens flag gäbe. Wenn es Ihnen gefällt, folgen Sie mir bitte und es wird motivierend sein. Danke. !!!!!
Recommended Posts