Salut a Tous,

Voila, Je dois creer une fonction recursive qui permet de rechercher la valeur minimum et maximum dans un tableau, en utilisant une ""methode dichotomique"". J'ai reussi a en creer une sans trop de probleme, mais j'ai l'impression qu'il y a quelquchose qui cloche(j'ai surtout l'impression qu'il fait beacoup trop d'operations) dans mon code :s .


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
#include <stdio.h>
#define N 80000
void minmaxrecursif(int tab[],int indiceMin, int indiceMax, int *valeurMin, int *valeurMax)
{
    int milieu=(indiceMax+indiceMin)/2;
 
    if ( indiceMax-indiceMin==1 )
    {
 
        if (*valeurMin > tab[indiceMax])
            *valeurMin=tab[indiceMax];
        else if ( *valeurMax < tab[indiceMax])
            *valeurMax=tab[indiceMax];
        /*printf("tab[min]=%d\ntab[max]=%d",tab[indiceMin],tab[indiceMax]);*/
    }
 
 
    else
    {
        minmaxrecursif( tab,indiceMin,milieu,valeurMin,valeurMax);
        minmaxrecursif( tab,milieu,indiceMax,valeurMin,valeurMax);
    }
}
 
 
int main(void)
{
    int tab[N]={0};
    int min=tab[0], max=tab[0];
    int i;
    for (i=0;i<N;i++)
    {
        tab[i]=i;
    }
 
    minmaxrecursif(tab,0,N-1,&min,&max);
    /*minmax(tab,N,&min,&max);*/
    printf("min=%d max=%d \n",min,max);
    return 0;
 
}

Si vous avez des idees pour optimiser ca je suis preneur (pas forcement des bouts de code ou des correction j'aimerai bien y arriver de moi meme mais pour l'instant j'ai pas de pistes :s )

Merci d'avances pour vos reponses.