ihr habt natürlich recht Grundlagen sind wichtig und ich hätte die absicht meines posts besser kommentieren sollen. Es war mehr als ergänzung gedacht.
Aber die Standardbibliotheken kennen, verstehen und anwenden koennen ist mindestens genauso wichtig wie die Grundlagen.
Vorallem C++ ist eine unglaublich mächtige Sprache aber wird viel zu oft nur als C mit objekt orientiertem Syntax verwendet.
So kommen mir desoeftern die wildesten Algorithmen mit zig Speicherlücken und sonstigem low level Fehlern unter welche mit einigen wenigen STL algorithmen fehlerfrei, generischer und fast immer effizienter zu loesen sind.
sort auf 3 Zahlen anwenden ist auch nicht besonders viel langsamer als es manuell zumachen. sort verwendet meistens quicksort für große mengen und insertionsort welcher kaum overhead hat für kleine.
hiers übrigens noch ne kürzere variante vom obigem code mit dem swap algorithmus (d.h. generisch):
if (b < a) swap(b, a);
if (c < b) swap(c, b);
if (b < a) swap(b, a);
ist aber genauso teuer, 3 vergleiche 6 assignments 3 kopien.
im c++0x standard wäre das allerdings schneller für komplexe objekte statt nummern da der standard rvalue referenzen unterstützt (ermoeglicht swap ohne temporäre objekte)