Cómo analizar el código para encontrar la complejidad del algoritmo

No soy un experto en complejidad de tiempo. De hecho, a veces es muy difícil calcular la complejidad temporal de algunos algoritmos. Pero le diré lo que se requiere porque a partir de la descripción de su problema puedo averiguar qué problema está enfrentando. Yo también tuve este problema.
1.) O (c1 * n ^ p + c2 * n ^ (p-1) + c3 * n ^ (p-3) ………… c0) = O (n ^ p) ya que p es la potencia más alta.
2.) O (f (n) + g (n)) y para n >> 0 f (n)> g (n) luego O (f (n))
3.) O (c * n ^ k) = O (n ^ k)
4.) O (2 ^ n)> O (n ^ k)> O (n log n)> O (n)> O (log n)> O (1)
5.) Si se le dan k bucles anidados, entonces la complejidad será O (n ^ k) porque las declaraciones dentro del bucle interno se ejecutarán n * n * n *… .k veces, entonces O (n ^ k). Mantenlo simple. En condición anidada, la complejidad es O (n ^ no de bucles)
6.) En el caso de funciones recursivas, la complejidad se encuentra generalmente formulando una ecuación de recurrencia y luego aplicando el teorema de Master. Vea el cálculo de la complejidad de la búsqueda binaria y el orden de fusión utilizando el teorema maestro. Tendrás la idea.
7.) Aprenda la complejidad de algoritmos y estructuras de datos bien conocidos como DFS, BFS, ordenación rápida, árbol de búsqueda binaria, árbol rojo negro, etc. porque son fáciles de recordar. Ayudará en el siguiente tipo de cálculo:
Supongamos que tenemos un programa que utiliza tanto la búsqueda rápida como la búsqueda binaria. Entonces, la complejidad será O (complejidad de clasificación rápida + complejidad de búsqueda binaria) = O (n * log n + log n) = O (n * log n) en el punto 2.
8.) Cuando estudias estructuras de datos y algoritmos, sigue viendo la complejidad del tiempo de lo que estudies. El libro de Robert Sedgewick y sus conferencias en Coursera son muy útiles. Verlas.
9.) Sigue haciendo programación competitiva. No solo calculará la complejidad del tiempo allí, sino que también la usará para optimizar su código.
Espero que esto te ayude.

Puede encontrar su respuesta aquí -> ¿Cómo encuentro la complejidad temporal del siguiente fragmento de código?