Comment calculer la complexité temporelle de l'algorithme ? À propos du meilleur cas, du pire cas et du cas moyen.

3 Réponses


  • Tu dois savoir
    - l'algorithme
    - le chemin le plus court à travers l'algorithme
    - le plus long chemin à travers l'algorithme
    - comment les longueurs de chemin ou le nombre d'itérations varient avec le nombre d'éléments de données traités
    - à quoi ressemble un ensemble de données « moyenne ».

    La complexité temporelle du meilleur des cas peut être calculée en considérant ce qui arrive au temps d'exécution ou au nombre d'itérations lorsque vous augmentez l'ensemble de données d'1 élément, de 2 éléments, d'un facteur 2, d'un facteur 3. Si le temps d'exécution l'augmentation est linéaire avec le nombre de données, on dit que la complexité temporelle est O(N), c'est-à-dire de l'ordre de N, le nombre de données. Si le temps d'exécution varie comme le carré du nombre d'éléments de données, alors on dit que la complexité temporelle est O(N 2 ). La complexité temporelle peut être d'autres ordres, exponentielle, ou avoir une autre relation avec le nombre d'éléments de données, par exemple, O(N 3/2 ).

    La même évaluation de la complexité temporelle peut être effectuée pour les cas les plus défavorables et les cas moyens.
  • SELON LE 1ER algorithme, à l'
    intérieur de la première boucle while ----->

    nous devons découvrir toutes les opérations de base qui prennent un temps constant.
    Ici
    k 0 ------ est une opération de base
    k < n*n ---- supposons , n*n = N (de toute façon ce sera un nombre) une opération de base
      y ← y + j - k - ----- une autre opération de base
    k ← k + 1 ------ est une opération de base de plus
    j ← j - 1 ------ dernière opération de base dans la 1ère boucle while

    Considérons maintenant le temps,

    1+ N + N -1 + N-1 + 1 = 3N à l'

    intérieur de la boucle while , prend 3N ( N est juste un grand nombre si nous supposons une grande valeur de n)
    Y ← 0
    j ← n
    while j >= 1 do {
      k ← 0
      while k < n*n do {
      y ← y + j - k
      k ← k + 1
      }
    j ← j - 1
    }

    Y ← 0
    j ← n

    maintenant prendre le 1er algorithme dans son ensemble ,

    maintenant pour n valeur 1 , l'
    algorithme total prendra 3N fois, maintenant pour n valeur 2, l'algorithme total prendra 2*3N fois
    ainsi de suite...
    Pour la valeur n
    n * 3N = 3 N2 (trois N carrés) donc enfin on peut dire que l'ordre de cet algorithme est n carré.
  • Bonne année et paix à vous tous ! Pouvez-vous m'expliquer quel est le temps d'exécution T(n) des 3 algorithmes ?

    Algorithme 1 :
    Y ← 0
    j ← n
    while j >= 1 do {
      k ← 0
      while k < n*n do {
      y y + j - k
      k ← k + 1
      }
    j ← j - 1
    }
    return y

    Algorithm 2 :
    Pour I 1 à n faire
      pour j ← 1 à I faire
      pour k ← j à I+j faire
      a ← a + 1
      fin pour
      fin pour
    fin pour

    Algorithme 3 :
    Pour I ← 1 à m faire
      pour j ← 1 à i2 do
      pour k 1 à j do
      b ← b + 1
      fin pour
      fin pour
    fin pour

Ecrivez votre réponse

Votre réponse apparaîtra après modération