Seite 1 von 3

C: Bubblesort

Verfasst: Mo Sep 15, 2008 5:46 pm
von nufan
So, hier ist schließlich der Thread zu Bubblesort.

Lg

Re: C: Bubblesort

Verfasst: Mo Sep 15, 2008 11:20 pm
von Xin
Mit Link sogar leichter zu finden: :->

http://tutorial.proggen.org/doku.php?id=c:bubblesort

Code: Alles auswählen

void Bubblesort (int feld [ANZ])
Höh?

Code: Alles auswählen

    for (i=0; i<(ANZ-1); i++)    // ANZ-1, da auf feld [i+1] geprüft wird. Läuft die Schleife bis ANZ, 
ANZ-1 wird laufend neu ausgerechnet, obwohl es es konstant ist. Ist das gut?
Oder was ist eigentlich ANZ?

Code: Alles auswählen

      if (feld [i]>feld [i+1])
Die Schreibweise gefällt mir nicht: Die eckigen Klammern sollten an der Variable sein, die Operatoren sollten abgetrennt sein:

Code: Alles auswählen

      if( feld[ i ] > feld[ i + 1 ] )
Das gilt ebenso für die nachfolgenden Zeilen.

Warum formatierst Du so?

Code: Alles auswählen

  }while (geordnet==0);            // Schleife läuft, bis das Feld geordnet ist.
Hier würde ich nicht auf 0 vergleichen, sondern das ausformulieren, wie man es denken würde:

Code: Alles auswählen

  }while( !geordnet );            // Schleife läuft, solange Feld nicht geordnet

Re: C: Bubblesort

Verfasst: Di Sep 16, 2008 6:19 pm
von nufan
Xin hat geschrieben:Höh?
Das Feld wird aus einem (Haupt-)Programm übergeben.
Xin hat geschrieben:Oder was ist eigentlich ANZ?
Die Anzahl der Feldelemente. Da hätt ich besser das define reinschreiben sollen...

Lg

Re: C: Bubblesort

Verfasst: Di Sep 16, 2008 8:14 pm
von Xin
dani93 hat geschrieben:
Xin hat geschrieben:Höh?
Das Feld wird aus einem (Haupt-)Programm übergeben.
Kompiliert das?

Re: C: Bubblesort

Verfasst: Di Sep 16, 2008 9:16 pm
von nufan
Xin hat geschrieben:Kompiliert das?
Ich dachte es reicht, wenn nur der Algorithmus drin steht? Zuvor hatte ich das ganze Prog mit main, Eingabe, usw...

Re: C: Bubblesort

Verfasst: Di Sep 16, 2008 10:30 pm
von Xin
dani93 hat geschrieben:
Xin hat geschrieben:Kompiliert das?
Ich dachte es reicht, wenn nur der Algorithmus drin steht? Zuvor hatte ich das ganze Prog mit main, Eingabe, usw...
Es ist etwas ungewöhnlich ein Array zu übergeben... gehen müsste es eigentlich, aber ich weiß nicht, ob's jeder Compiler frisst. Daher die Frage.

Re: C: Bubblesort

Verfasst: Di Sep 16, 2008 10:34 pm
von nufan
Xin hat geschrieben:Es ist etwas ungewöhnlich ein Array zu übergeben... gehen müsste es eigentlich, aber ich weiß nicht, ob's jeder Compiler frisst. Daher die Frage.
Wie denn sonst? Pointer?

Re: C: Bubblesort

Verfasst: Mi Sep 17, 2008 8:36 am
von fat-lobyte
Xin hat geschrieben:
dani93 hat geschrieben:
Xin hat geschrieben:Kompiliert das?
Ich dachte es reicht, wenn nur der Algorithmus drin steht? Zuvor hatte ich das ganze Prog mit main, Eingabe, usw...
Es ist etwas ungewöhnlich ein Array zu übergeben... gehen müsste es eigentlich, aber ich weiß nicht, ob's jeder Compiler frisst. Daher die Frage.
Ungewöhnlich? Also wie ich das sehe sollte man so oft wie möglich das Array[] verwenden statt einem Zeiger. Bei den meisten Compilern gibts zusätzliche überprüfungen und Warnungen im Vergleich zu einem einfachen Zeiger.
Außerdem ist es dann klarer, dass ein Array übergeben wird.

Re: C: Bubblesort

Verfasst: Mi Sep 17, 2008 11:24 am
von Xin
fat-lobyte hat geschrieben:Ungewöhnlich? Also wie ich das sehe sollte man so oft wie möglich das Array[] verwenden statt einem Zeiger. Bei den meisten Compilern gibts zusätzliche überprüfungen und Warnungen im Vergleich zu einem einfachen Zeiger.
Außerdem ist es dann klarer, dass ein Array übergeben wird.
int [] ist gleichbedeutend mit int *.

Er übergibt int[ ANZ ], also einen großen Datenblock. Ungewöhnlich.

Re: C: Bubblesort

Verfasst: Mi Sep 17, 2008 12:49 pm
von Dirty Oerti
Die Übergabe per ANZ ist zwar nicht unbedingt die schönste/normalste/etc...

Gut daran finde ich aber, dass sich der Leser beim Beispiel nicht mit zusätzlichen Themen "herumschlagen" muss.

Eine Anmerkung, dass man das eigntl anders macht, wäre aber doch sehr gut.

Wobei die Frage ist, ob man nicht ein gewisses Grundwissen in einem Artikel über Bubblesort verlangen kann...