¿Cómo calcular la complejidad temporal del algoritmo? Sobre el mejor de los casos, el peor de los casos y el caso medio.

3 Respuestas


  • Tienes que saber
    - el algoritmo
    - el camino más corto a través del algoritmo
    - el camino más largo a través del algoritmo
    - cómo varían las longitudes de la ruta o el número de iteraciones con el número de elementos de datos procesados
    - cómo se ve un conjunto de datos "promedio".

    La complejidad temporal del mejor caso se puede calcular considerando lo que sucede con el tiempo de ejecución o el número de iteraciones cuando aumenta el conjunto de datos en 1 elemento, en 2 elementos, en un factor de 2, un factor de 3. Si el tiempo de ejecución el aumento es lineal con el número de elementos de datos, decimos que la complejidad del tiempo es O (N), es decir, en el orden de N, el número de elementos de datos. Si el tiempo de ejecución varía como el cuadrado del número de elementos de datos, entonces decimos que la complejidad del tiempo es O (N 2 ). La complejidad del tiempo puede ser de otros órdenes, exponencial o tener alguna otra relación con el número de elementos de datos, por ejemplo, O (N 3/2 ).

    Se puede realizar la misma evaluación de la complejidad del tiempo para los casos más desfavorables y medios.
  • SEGÚN el 1er algoritmo,
    dentro del primer ciclo while ----->

    tenemos que averiguar cuál es la operación básica que lleva una cantidad constante de tiempo.
    Aquí
    k ← 0 ------ es una operación básica
    k <n * n ---- suponga, n * n = N (de cualquier forma será un número) una operación básica
      y ← y + j - k - ----- otra operación básica
    k ← k + 1 ------ es una operación básica más
    j ← j - 1 ------ última operación básica dentro del primer bucle while

    Ahora considere el tiempo,

    1+ N + N -1 + N-1 + 1 = 3N

    dentro del ciclo while, toma 3N (N es solo un número grande si asumimos un valor grande de n)
    Y ← 0
    j ← n
    while j> = 1 hacer {
      k ← 0
      mientras k <n * n hacer {
      y ← y + j - k
      k ← k + 1
      }
    j ← j - 1
    }

    Y ← 0
    j ← n

    ahora tomar el primer algoritmo como un todo ,

    ahora para n valor 1, el algoritmo total tomará 3N veces,
    ahora para n valor 2, el algoritmo total tomará 2 * 3N veces y
    así sucesivamente ...
    Para el valor n
    n * 3N = 3 N2 (tres N cuadrados) entonces finalmente podemos decir que el valor de este algoritmo es n cuadrado.
  • ¡Feliz año nuevo y paz para todos! ¿Puede explicarme cuál es el tiempo de ejecución T (n) de los 3 algoritmos?

    Algoritmo 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

    Algoritmo 2 :
    Para I ← 1 an hacer
      para j ← 1 para hacer
      para k ← j para I + j hacer
      un ← a + 1
      final para
      fin para
    final para el

    algoritmo 3:
    Para I ← 1 para m hacer
      para j ← 1 a i2 hacer
      para k ← 1 a j hacer
      b ← b + 1
      fin para
      fin para
    fin para

Escribe tu respuesta

Tu respuesta aparecerá después de la moderación