Zitat:
Zitat von |Coding
Das solltest Du jetzt aber nicht einfach so in den Raum schreien...
|
na also ich habe gelernt, dass
pow( a , x ) = exp( x * log(a) );
ist, und da in c bei pow zuerst geprüft wird, ob x == 2 ist, und dann a mit sich selbst multipliziert wird, ist diese methode deutlich schneller.
noch viel schneller ist folgender algorithmus:
Code:
double powi( double base, int exponent) {
int negative;
double power;
negative = exponent < 0;
if( negative ) exponent = - exponent;
power = 1.0;
while( exponent ) {
if( exponent&1 ) power *= base;
exponent >>= 1;
base *= base;
}
if( negative ) return 1.0/power; else return power;
}
der allerdings nur mit ganzahligen exponenten funktioniert.
da es zudem auch deutliche unterschiede bei den verschiedensten sortieralgorithmen gibt, würde ich mir auch mal ganz gerne die sortier-funktionen anschauen...