BubbleSort
-
okay mein code funktioniert wenn die do while schleife durch das überfüllen des arrays abgebrochen wird warum kriege ich bei einem abbruch mit "0" ein falsches ergebnis
Integer (0 Abbruch): 4 Integer (0 Abbruch): 2 Integer (0 Abbruch): 1 Integer (0 Abbruch): 0 0 0 1
-
der aufwand der schleife bleib doch gleich oder? O(n^2)
-
Ja und? Es geht ja sowieso nicht um performance, aber es deutet darauf hin, dass du nicht wirklich weisst, was du bzw. Bubblesort mach(s)t.
-
Ich schaue ob A[0] größer ist als A[1] wenn ja sollen beide vertauscht werden.
Dann geht der zähler hoch und schaut ob A[1] nun größer ist als A[2] wenn ja tausch wenn nein kein tausch. So schwer ist das ja nicht ich glaube nur dass irgendwas mit der Abbruchfunktion nicht stimmt.
-
Ja, es ist einfach. Daher wundert es mich auch, dass du den bereits sortierten Bereich auch weiterhin sortierst. Egal.
Jockelx schrieb:
if (A[j + 1] < A[j]) {Was soll A[n+1] sein?
Selbe Frage für A[n].
-
n=0
und A[n+1] bedeutet A[1]
und A[n] bedeutet A[0]
wenn nun A[1]<A[0]->tausch
n++
-
Ich meinte schon konkret A[n+1].
Dein j in der inneren Schleife ist im letzten Durchlauf j=n.Aber was ist A[j+1] (also A[n+1]) bestenfalls?
("Bestenfalls", falls n < max)
-
Achso jetzt verstehe ich. wenn ich einen array mit der größe 10 habe würde er ja dann A[11] vergleichen...hmm weiss leider nur nicht wie ich das beheben kann
-
???
Dann denk nochmal drüber nach...
-
Wenn du ein Array mit 10 Elementen füllst
ist der Index 10 für dich unzugänglich!
Also es fängt bei 0 an und endet bei 9