Para dilucidar la discusión en los comentarios, importa a qué se esté midiendo el crecimiento en relación.
Como mencionó @Kaveh, no es lineal en ambos al mismo tiempo, pero es lineal si uno es constante y el otro crece.O(mn)
Por otro lado, probablemente se consideraría lineal. Intuitivamente, si duplica, o si duplica, o incluso si y duplican, no puede ser más del doble. Esto no es cierto para ; si y tanto doble sube por 4. Por esta razón, en muchos contextos esto Duración sería considerado cuadrática. Doy un ejemplo de esto con la coincidencia de cadenas en un par de párrafos.m n m n m + n m n m n m nO(m+n)mnmnm+nmnmnmn
Pero, por lo general, cuando usa la notación Big- , la usa en referencia a algo en particular. Como somos principalmente teóricos, generalmente es el tamaño de la entrada al problema.O
Tomemos Matrix Addition, por ejemplo. Agregar dos matrices toma tiempo. Pero cada elemento de nuestra entrada solo se toca una vez, por lo que esto generalmente se llamaría lineal. En otras palabras, nuestra entrada es de tamaño , por lo que un tiempo de ejecución de es lineal en el tamaño de la entrada.m×nO(mn)O(mn)O(mn)
Ahora veamos la coincidencia de cadenas, es decir, se nos da una cadena de tamaño una cadena de tamaño queremos ver si hay una cadena más pequeña dentro de la cadena más grande. Podemos comprobar esto ingenuamente en tiempo ; esto generalmente se consideraría cuadrático. ¿Por qué? Si y pueden ser cualquier cosa, set . Entonces nuestro tiempo de ejecución es y nuestra entrada es de tamaño .mnO(mn)mnm=nO(m2)2m
Por otro lado, si usamos el algoritmo Rabin-Karp , obtenemos (en promedio) tiempo . Nuestra entrada consistía en ambas cadenas, por lo que nuestra entrada también era de tamaño . Por lo tanto, esto generalmente se denominaría lineal.O(m+n)O(m+n)
Para resumir: generalmente se llama lineal para cosas como la multiplicación de matrices porque es lineal en el tamaño de la entrada, pero generalmente se llama cuadrático para cosas como la coincidencia de cadenas debido a la entrada más pequeña. El término apropiado depende del contexto en el que lo esté utilizando.O(mn)