Bonjour à tous!

Je tente d'optimiser un de mes programmes. Quelqu'un pourrait-il m'expliquer pourquoi cet algorithme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
void Mafonction1(unsigned char *MonImage)
for (short int x=1;x<width-1;x++)
        for (short int y=1;y<height-1;y++)
{
     //Traitement(x,y);
}
 
void Mafonction2(unsigned char *MonImage)
 for (short int x=1;x<width-1;x++)
         for (short int y=1;y<height-1;y++)
 {
      //Traitement2(x,y);
 }
est plus rapide que celui-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void Regroupement(unsigned char *MonImage)
  for (short int x=1;x<width-1;x++)
          for (short int y=1;y<height-1;y++)
  {
       Mafonction1(x,y);
       Mafonction2(x,y);
// les boucles dans mes fonctions ont eté supprimées bien sur
  }
Sachant que dans le 2eme algorithm il ne scanne qu'une fois tous les x,y alors que dans la premiere on le fait 2 fois ( plus de calculs ) ?

mercr pour votre aide