Forum: Mikrocontroller und Digitale Elektronik sortieren


von Bürgo (Gast)


Lesenswert?

Mahlzeit Profis,
suche Hilfe bei euch um mich in C weiterzubilden.

Möchte gerne in  möglichst wenig Schritten fünf int Werte nach größe 
sortieren.
Wie stellt man das Controller freundlich an?
Danke für ale Infos und Antworten.
MfG Bürgo

von Michael Wilhelm (Gast)


Lesenswert?

mal schnell hingeschrieben:

for (i=1;i<5;i++)
{
  if (i<i-1) tausche(i,i-1);
}

void tausche(unsigned int a, unsigned int b)
{
unsigned int c;
 c = a;
 a = b;
 b = c:
}
nicht getestet;

MW

von Klaus (Gast)


Lesenswert?

Wikipedia , Artikel  "Sortierverfahren"

Oder mal exemplarische Werte auf kleine Zettelchen schreiben und selbst 
überlegen.

von Unbekannter (Gast)


Lesenswert?

> mal schnell hingeschrieben:

   [...]

> nicht getestet

Brauchst Du nicht, ich zähle in diesen paar Zeilen ein halbes Dutzend 
Fehler. Und das schlimme dabei: Bis auf einen Vertipper sind es 
ausschließlich logische Fehler!

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

stdlib.h, qsort.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

@Michael Wilhelm

Du solltest dir diesen Sortieralgorithmus patentieren lassen. Denn es 
ist der einzige mir bekannte der immer in O(n) sortiert :-)

SCNR

Matthias

von Karl H. (kbuchegg)


Lesenswert?

> Du solltest dir diesen Sortieralgorithmus patentieren lassen. Denn es
> ist der einzige mir bekannte der immer in O(n) sortiert :-)

Dann kennst du Bucket-Sort noch nicht :-)
http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/bucket.htm

OK. geschummelt. Bucket-Sort funktioniert nur bei bestimmten
Voraussetzungen.

von Karl H. (kbuchegg)


Lesenswert?

> Brauchst Du nicht, ich zähle in diesen paar Zeilen ein halbes Dutzend
> Fehler. Und das schlimme dabei: Bis auf einen Vertipper sind es
> ausschließlich logische Fehler!

Und das Tollste.
Ein guter optimizing Compiler würde alles ratzeputz
wegoptimieren und durch  i = 5; ersetzen.

Am besten finde ich

if (i<i-1)

Wenn hat man schon eine Zahl die kleiner als dieselbe Zahl um 1
vermindert ist :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.