C: Bubblesort

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: C: Bubblesort

Beitrag von fat-lobyte » Do Sep 18, 2008 8:07 am

Dirty Oerti hat geschrieben:
dani93 hat geschrieben:Ok... und wie solls im Tutorial stehn?
Das ist die alles entscheidende Frage.

Ich würde es als Zeiger ins Tutorial schreiben.
Ich würde es als Array[] ins Tutorial schreiben. Es ist schließlich nicht irgendein Zeiger, sondern ein Zeiger auf ein Array. Das macht zwar überhaupt keinen Unterschied, allerdings ist das logischer.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Bubblesort

Beitrag von Xin » Do Sep 18, 2008 11:00 am

fat-lobyte hat geschrieben:Ich würde es als Array[] ins Tutorial schreiben. Es ist schließlich nicht irgendein Zeiger, sondern ein Zeiger auf ein Array. Das macht zwar überhaupt keinen Unterschied, allerdings ist das logischer.
Aber bitte vorher überprüfen, ob gcc, mingw und VS das in aktuellen Versionen auch schlucken.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C: Bubblesort

Beitrag von nufan » Do Sep 18, 2008 1:22 pm

Xin hat geschrieben:Aber bitte vorher überprüfen, ob gcc, mingw und VS das in aktuellen Versionen auch schlucken.
Also meine Borland-Version und auch die neueste g++-Version nimmt das ohne Probleme.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Bubblesort

Beitrag von Xin » Do Sep 18, 2008 1:32 pm

dani93 hat geschrieben:
Xin hat geschrieben:Aber bitte vorher überprüfen, ob gcc, mingw und VS das in aktuellen Versionen auch schlucken.
Also meine Borland-Version und auch die neueste g++-Version nimmt das ohne Probleme.
Ich glaube da schonmal Probleme gehabt zu haben, weswegen ich ausschließlich nur noch Zeiger übergebe.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C: Bubblesort

Beitrag von nufan » Mo Okt 05, 2009 5:14 pm

So, ich habe meinen allerersten Artikel im Wiki praktisch komplett neu geschrieben :)
Wie immer wärs nett wenn mal jemand drübergucken würde.

Hier noch einmal der Link:
http://tutorial.proggen.org/doku.php?id=c:bubblesort

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: C: Bubblesort

Beitrag von Kerli » Mo Okt 05, 2009 9:34 pm

dani93 hat geschrieben:So, ich habe meinen allerersten Artikel im Wiki praktisch komplett neu geschrieben :)
Wie immer wärs nett wenn mal jemand drübergucken würde.
Ich hab den Code jetzt nicht getestet, aber mein innerer Compiler hat keine Fehler erkannt ;) Auch alles andere ist gut nachvollziehbar, und beim Durchlesen habe ich jetzt zumindest nichts gefunden was ich ausbessern würde. Nur manchmal kommt mir vor das du sehr gerne Leerzeilen einfügst. Vor allem bei Schleifen ist mir das im ersten Codebeispiel am Ende aufgefallen...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Bubblesort

Beitrag von Xin » Di Okt 06, 2009 9:19 am

http://tutorial.proggen.org/doku.php?id=c:bubblesort[/quote]
dani93 hat geschrieben:So, ich habe meinen allerersten Artikel im Wiki praktisch komplett neu geschrieben :)
Wie immer wärs nett wenn mal jemand drübergucken würde.
Auf den ersten Blick sieht es ganz gut aus.
Ich habe Leerzeilen verändert und die Kommentare der Variablen hinter die Variablen geschoben. Wenn Du mehrere Variablen nach der Deklaration beschreibst, muss man die erstmal wieder zuordnen, also stehen die Kommentare nun dahinter. In den Text habe ich zur ersten Verbesserung noch eine Art Fazit-Satz dazugeschrieben: "Ist nach einem Durchlauf nichts mehr verändert worden, so ist das Array fertig sortiert und der Algorithmus kann vorzeitig abgebrochen werden." Das kann man aus deinem Text auch herauslesen, doch ich wollte es nochmal eindeutig hervorheben, dass das die Verbesserung des Algorithmus ist.


Die Quellcodes habe ich nur überflogen, nicht getestet, machte soweit aber einen guten Eindruck.

In Verbesserungen 3 fand ich folgendes

Code: Alles auswählen

 // lastmove = n;
und es steht auch noch drin. Mit dem dritten Code habe ich beim Überfliegen etwas Schwierigkeiten gehabt.
Das kann aber auch nur ein Eindruck sein. Dafür müsste ich es mir genauer angucken.

Ansonsten gefällt mir der Artikel sehr gut :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C: Bubblesort

Beitrag von nufan » Di Okt 06, 2009 5:02 pm

Kerli hat geschrieben:Ich hab den Code jetzt nicht getestet, aber mein innerer Compiler hat keine Fehler erkannt ;)
Ebenso ^^
Nein, ich habs natürlich getestet, musste dann aber noch ein paar Sachen ausbessern, die gcc nicht mochte (z.B. Variablendeklaration in der for-Schleife).
Kerli hat geschrieben:Nur manchmal kommt mir vor das du sehr gerne Leerzeilen einfügst. Vor allem bei Schleifen ist mir das im ersten Codebeispiel am Ende aufgefallen...
Xin hat geschrieben:Ich habe Leerzeilen verändert und die Kommentare der Variablen hinter die Variablen geschoben.
Hmm... ich sollte wohl über meinen Formatierungsstil nachdenken...
Xin hat geschrieben:In Verbesserungen 3 fand ich folgendes

Code: Alles auswählen

    // lastmove = n;
und es steht auch noch drin.
Das sollte natürlich kein Kommentar sein, habs auch schon ausgebessert.
Xin hat geschrieben:Mit dem dritten Code habe ich beim Überfliegen etwas Schwierigkeiten gehabt.
Das kann aber auch nur ein Eindruck sein. Dafür müsste ich es mir genauer angucken.
Sind einfach zwei Bubblesorts hintereinander, die einmal das kleinste Element nach links und einmal das größte nach rechts verschieben. Dadurch lässt sich Verbesserung 2 gleich doppelt anwenden.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Bubblesort

Beitrag von Xin » Di Okt 06, 2009 5:27 pm

dani93 hat geschrieben:Hmm... ich sollte wohl über meinen Formatierungsstil nachdenken...
Wenn ich vom Mac her in das Wiki einkopiere habe ich zwischen jeder Zeile eine Leerzeile. Vielleicht kommen sie daher.

Wenn nicht... ja, dann solltest Du vielleicht mal drüber nachdenken ;-)
dani93 hat geschrieben:
Xin hat geschrieben:Mit dem dritten Code habe ich beim Überfliegen etwas Schwierigkeiten gehabt.
Das kann aber auch nur ein Eindruck sein. Dafür müsste ich es mir genauer angucken.
Sind einfach zwei Bubblesorts hintereinander, die einmal das kleinste Element nach links und einmal das größte nach rechts verschieben. Dadurch lässt sich Verbesserung 2 gleich doppelt anwenden.
Ich gucke es mir später mal an, das habe ich so noch nicht gesehen.
Ich muss aber auch sagen, dass ich mir BubbleSort nie lange angesehen habe. Eben immer nur zum Lernen.
BubbleSort ist langsam, also verwendet man QuickSort und guckte ich mir eher diesen Algorithmus an.

Da wir hier vorrangig eine Lernseite sind, ist BubbleSort hier aber eigentlich wichtiger als QSort.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C: Bubblesort

Beitrag von nufan » So Dez 18, 2011 2:40 am

Und symbolischerweise bearbeite ich heute - mehr als 3 Jahre nach der Erstellung - wieder mal meine allererste Wiki-Seite ^^
Ich hab jetzt die Fehler die mir gleich aufgefallen sind ausgebessert. Kann vielleicht nochmal jemand drüber schaun und eventuell ein paar Tests durchführen? Wie siehts jetzt mit int * vs int[] aus?

Antworten