La complejidad esencial se refiere a una situación donde todas las soluciones razonables a un problema deben ser complicadas (y posiblemente confusas) porque las soluciones "simples" no resolverían adecuadamente el problema.
Esto contrasta con la complejidad accidental, que surge puramente de desajustes en la elección particular de herramientas y métodos aplicados en la solución.
El ganador del Premio Turing, Fred Brooks, ha usado este término y su antónimo, complejidad accidental, desde mediados de la década de 1980.
En este contexto, la complejidad esencial se refiere a la complejidad ciclomática después de reemplazar iterativamente todas las estructuras de control bien estructuradas con una única instrucción.
Este código encuentra la primera fila de z que tiene todos sus elementos en cero y pone su índice en i; Si no hay ninguna, pone -1 en i.