Antes de nada, ¿a quien se le ocurre formular una pregunta de programación sin especificar el lenguaje?, es algo que no soporto
, jeje.
Asumiré que por "coste" te estás intentando referir a la complejidad ciclomática (y no al intervalo de tiempo de ejecución que toma el algoritmo en cuestión para acabar):
Si, existen formulas para calcular la complejidad de unidades de código o
Code units,
además, dependiendo del lenguaje que sea también podrás encontrar ciertas herramientas de escritorio e incluso desde la propia IDE que utilices.
Por ejemplo en la plataforma .Net (VB, C#, etc), en la IDE
Visual Studio es tan sencillo como utilizar la opción "
Calculate Code Metrics", esto generará un sofisticado informe completo sobre la complejidad ciclomática de la aplicación, y de todos sus miembros (métodos, funciones, classes, etc), así como otros factores como la cantidad de lineas de código, etc:
Una alternativa para .Net sería utilizar la herramienta de refactorización
Telerik JustCode que se integra en
Visual Studio y mide la complejidad de cada método en tiempo de diseño.
En otros lenguajes desconozco que herramientas habrá, pero realizando una búsqueda en google veo que para la IDE Eclipse, la cual soporta varios lenguajes, hay un plugin llamado "Metrics":
Te dejo algo de información sobre la fórmula, por si no encuentras herramientas automatizadas:
Saludos