Bonjour à tous

Je dois ecrire un algo qui recherche la plus grande sequence de 1 dans un tableau à 1 dimension composé uniquement de 1 et de 0.

Pour cela on nous a donné quelques pistes : choisir un pivot (le milieu du tableau). Utiliser deux fonctions : head(T,i,j) qui retourne le plus long sous tableaux préfixe de T[i...j] uniquement composé de 1, et tail(T,i,j) qui retourne le plus long sous tableaux suffixe de T[i...j] uniquement composé de 1.

En m'aidant de ça et de ce que nous a dit la prof..j'ai concocté ça :

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
 
fonction rechRec(T,i,j) : (p,n) // (position plus grande sequence,longueur)
  n <- j - i + 1 // taille tableau
  si n = 1 alors
    si T[i] = 0 alors retourner (0,0)
    sinon retourner (i,1)
    finSi
  sinon
    solutiong <- rechRec(T,i,i+(n/2)-1) // (p,n) de la meilleure solution à gauche
    solutiond <- rechRec(T,(n/2)+i,j) // (p,n) de la meilleure solution à droite
    si solutiong.n > solutiondroite.n alors maxsol = solutiong
    sinon maxsol = solutiond
    finSi
    g <- tail(T,i,i+(n/2)-1)
    d <- head(T,i+(n/2),j)
    longueur = g.longueur + d.longueur
    si longueur > maxsol alors
      si g est vide alors retourner(i+(n/2),longueur);
      sinon retourner(i+(n/2) - g.longueur,longueur)
    else
      retourner (maxsol)
    finSi
  finSi
finFonction
Je l'ai rapidement implémenté en C et ça n'a pas l'air de renvoyer le bon resultat
Je pense que ça vient de l'algo.. car j'ai suivit un peu sans comprendre ce que nous a dit la prof..
Car je ne vois pas trop comment il peut fonctionner cet algo

Si vous pouviez m'eclairer un peu car je patauge bien depuis une semaine
Merci pour votre aide