La complejidad de un algoritmo depende del tamaño del problema y la cantidad de recursos como espacio y tiempo que requiere. El tiempo de ejecución de un algoritmo se mide por el número de instrucciones ejecutadas multiplicadas por el tiempo requerido para cada instrucción. La complejidad de un algoritmo se expresa de forma asintótica para indicar su tasa de crecimiento a medida que el tamaño del problema aumenta.