Aide en exercice d'algorithme

Bonjour
j'ai un exercice en algorithme et complexité et j'ai pas pu le resoudre et j'espere que vous pouvez m'aider
l'exercice est le suivant:
Donner un algorithme recursif qui determine si tous les elements d'un tableau de taille n sont distincts et calculer la complexité de cet algorithme

c'est urgent svp svp svp si quelqu'un peut m'aider n'hesitez pas de m'aider

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. j'ai connu juste une methode iterative

    var i,j:integer;
    boolean trouve=false // pour indiquer si deux elements sont distincts
    for i:=1 to n do
    for j:=i+1 to n do {
    if (T[i]<>T[j]) then
    trouve=true;
    else
    trouve=false

    En plus je sais pas est ce que mon algorithme que j'ai fais est vrai ou non meme je peux pas calculer sa complexité et ça me fais un probleme et l'enoncé de l'exercice parle de deux version une iterative l'autre recursive
    Si vous pouvez m'aider n'hesitez pas et merci
    1. En iteratif ça peut donner un truc du genre :

      var i,j:integer;
      boolean tousDistincts=true
      for i:=1 to n do
      for j:=1 to n do {
      if (T[i]==T[j]) then
      tousDistincts=false
      exit //quitter la fonction
      1. Pour le coté récursif, je me lance :)

        int i,j
        boolean tousDistincts=true

        for(i de 1 à n)
        fonction tester(int i, int j)
        if(T[i]==T[j])
        tousDistincts==false
        else
        tester(i,j+1)
        end
        endfunction
        end