¿Cómo puede alguien calcular la complejidad de este algoritmo?

Pregúntate a ti mismo las siguientes preguntas.

  1. ¿Entiendes lo que hace el algoritmo y por qué funciona? Esto no es estrictamente necesario para determinar la complejidad, pero es un poco triste determinar la complejidad de un algoritmo que no entiendes.
  2. ¿Cuáles son las entradas al algoritmo y cuál es el parámetro con respecto al cual estamos midiendo la complejidad? La complejidad siempre se mide en función del “tamaño” de entrada y desea asegurarse de saber cuál es el tamaño relevante. Si la entrada es una matriz lineal de elementos [math] n [/ math], el tamaño suele ser solo [math] n [/ math]. Si la entrada es un número, el tamaño suele ser el número de dígitos en la representación decimal o binaria del número.
  3. ¿Qué tipo de complejidad buscamos: el mejor caso, el peor caso, el caso promedio? No importa mucho en este caso, pero es muy útil tener en cuenta las diferencias.
  4. Finalmente, siga los bucles, bucles anidados, llamadas recursivas, etc. en el algoritmo e intente contar el número de pasos individuales que tienen lugar, en función de [math] n [/ math]. Esto a veces es complicado, pero esta instancia en particular no debería ser difícil para usted. Solo hay dos bucles, uno tras otro, y ninguno de ellos tiene pasos de magnitud internos que dependan de [math] n [/ math]. Entonces, ¿cuánto tiempo nos llevará pasar por el primer ciclo? ¿Cuánto tiempo llevará pasar el segundo?

More Interesting

¿Cómo podemos resolver el problema MENOS en SPOJ? Básicamente, ¿cómo hacemos la parte de retroceso para descubrir la secuencia de operaciones?

¿La programación se trata de definiciones de variables, para bucles, ifs y estructuras de datos?

Matrices de sufijos: Dadas dos cadenas s1 y s2. ¿Cuál es el mejor algoritmo para encontrar el número de subcadenas comunes entre s1 y s2 de longitud 1, 2,… hasta min (| s1 |, | s2 |)?

Cómo comenzar a crear un modelo / pronóstico de ventas con dos años y medio de datos de ventas anteriores

¿Cuáles son algunos ejemplos de problemas para los cuales una cola prioritaria resulta útil?

Cómo hacer un proyecto de chatbot

Cómo reducir la programación dinámica a programación lineal

Si hago algunos cálculos iterando sobre el bucle mientras tomo las entradas. A partir de entonces, imprimiendo el resultado. ¿Puedo decir que es O (1) complejidad?

Un profesor me dijo que no me molestara en aprender muchos lenguajes de programación sino que me enfocara solo en C ++, estructuras de datos y algoritmos, ¿tiene razón?

¿Por qué se utilizan montones para la asignación de memoria? ¿Por qué no se utilizan pilas ni ninguna otra?

Preguntado por un no experto en tecnología, ¿qué tan impactante sería si una tecnología pudiera mitigar el ruido impulsivo en tiempo real usando un algoritmo no lineal simple que usa la mediana (en lugar de la media)? Por ejemplo, podría usarse para reemplazar filtros lineales analógicos en teléfonos móviles, esencialmente actuando como un filtro lineal a menos que detecte ruido impulsivo y actúe para condicionarlo.

Traté de hacer este problema: 1984 - Pesadilla de navegación, pero obtengo TLE. ¿Cómo puedo mejorar mi algoritmo? ¿Cuál es la explicación de esta tarea?

¿Qué algoritmo de búsqueda usan los sitios de matrimonio en línea en India?

Cómo aprender a escribir buenos algoritmos

¿Qué tipo de algoritmo de localización utilizan generalmente los misiles de crucero?