¿Cuáles son los requisitos previos para resolver problemas de Big O? ¿Qué temas matemáticos debo saber?

Permítanme comenzar diciendo que esto no es realmente un campo de matemáticas o CS. El campo de la complejidad computacional computacional es un campo grande y complejo, donde generalmente estamos interesados ​​en la complejidad algorítmica computacional de algoritmos no estándar. Como resultado, estos problemas no son a menudo lo que los estudiantes ven con respecto a big-O. Estos problemas a menudo necesitan una comprensión simple del comportamiento de los polinomios y otras funciones estándar. Como resultado, conocer un poco de álgebra introductoria debería ser suficiente si pregunta algo como:

¿Es f (x) = 3x + 7 en O (g (x)) donde g (x) = x! ?

Observación: Esta redacción es relativamente poco común, pero diría que pensar en O (g (x)) como un conjunto de funciones es una buena forma de pensar al respecto.

Estos problemas tampoco suelen enfatizar las tres nociones estándar de complejidad computacional (el mejor, el peor y el caso promedio) y tampoco hablan de temas como la amortización de mis experiencias.

Alternativamente, si desea dar la complejidad computacional de algún algoritmo, probablemente desee cierta exposición a algoritmos comunes (y también estructuras de datos probables).