juste pour préciser sur le tri rapide. Sa complexité est un O(n*log(n)) non pas en moyenne, mais dans le meilleur des cas, c´est à dire lorsque l´on arrive toujours a repérer un pivot qui se situe exactement au millieu de la liste ( se reporter à la page de godrik pour infrmation sur le fonctionnement). Mais en fait trouver ce pivot demande quasiment de trier la liste.
Donc au final on ne peut pas dire qu´il n´y a pas de tri meilleur qu´en O(n*log(n)) car il n´y en a même pas en O(n*log(n)) ( en pratique). Par contre si on peut faire des supposition sur ce que l´on veut trier alors là on peut faire bien mieux.
Pour ma fonction pair voici ce à quoi je pensait ( par exemple) :
--S2--
bool est_pair(int n)
{
if ( n==0) return true; / /ça on le sait.
else return ! (est_pair(n-1)); / /ça aussi on le sait
}
et on n´a bien utilisé que les deux choses que l´on savait ( 0 est pair et il n´y a pas 2 nombres pairs ou deux nombres impairs consécutif).
un autre exo :
--3--
très simple : écrivez une fonction " efficace" pour calculer x à la puissance n ou n est un entier positif.
par efficace, je veux dire que ça doit être mieux que for ( int i=1;i++<n;p*=x);