Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

150
Vistas
¿Cambia la complejidad del tiempo cuando dos bucles anidados se reescriben en un solo bucle?

¿Es la complejidad temporal de las declaraciones for, while y if anidadas la misma? Supongamos que a se da como una matriz de longitud n .

 for _ in range(len(a)): for _ in range(len(a)): do_something

La declaración for anterior será O(n²).

 i = 0 while i < len(a) * len(a): do_something i += 1

A primera vista, el ciclo anterior puede considerarse como O(n), pero al final creo que también es O(n²).

¿Tengo razón?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Tengo razón?

¡Sí!

El doble bucle:

 for _ in range(len(a)): for _ in range(len(a)): do_something

tiene una complejidad de tiempo de O(n) * O(n) = O(n²) porque cada bucle se ejecuta hasta n .

El bucle único:

 i = 0 while i < len(a) * len(a): do_something i += 1

tiene una complejidad de tiempo de O(n * n) = O(n²), porque el bucle se ejecuta hasta i = n * n = n² .

over 4 years ago · Santiago Trujillo Denunciar

0

De hecho, todavía es O (n ^ 2). Eso es especialmente claro cuando observa el ciclo que tiene iteraciones len(a)*len(a).

Usted "aplanó" los bucles, pero no cambió la cantidad de trabajo, por lo tanto, es solo un cambio "estilístico" y no tiene impacto en la complejidad.

over 4 years ago · Santiago Trujillo Denunciar

0

Necesitamos determinar la complejidad del tiempo en función de la cantidad de operaciones que llevan a cabo las construcciones en mi humilde opinión. No sería correcto generalizar y decir que ciertos bucles tienen una complejidad de tiempo particular.

La complejidad de tiempo de los bucles for anidados generalmente sería O (n al cuadrado), no siempre. Algunos bucles for anidados involucrados también pueden tener una complejidad O(n). una sola declaración if generalmente sería O (1) ya que solo está haciendo comparaciones básicas. while loop podría ser cualquier cosa dependiendo de su condición de salida.

Si bien podría ser útil tener en cuenta generalizaciones como estas, siempre debemos verificar la cantidad de operaciones realizadas para determinar la complejidad.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda