Estoy leyendo un libro de texto en este momento para mi clase Java III. Estamos leyendo sobre Big-Oh y estoy un poco confundido por su definición formal.Notación Big Oh - definición formal
Definición formal: "Una función f (n) es de orden como máximo g (n) - es decir, f (n) = O (g (n)) - si es un número real positivo cy entero positivo N existen tales que f (n) < = cg (n) para todo n> = N. Esto es, cg (n) es un límite superior en f (n) cuando n es suficientemente grande. "
Ok, eso tiene sentido. Pero espera, sigue leyendo el libro ... me dio este ejemplo:
"En el segmento 9.14, dijimos que un algoritmo que utiliza 5n + 3 operaciones es O (n) Ahora puede mostrar. que 5n + 3 = O (n) mediante el uso de la definición formal de grande Oh.
Cuando n> = 3, 5 n + 3 < = 5 n + n = 6 n. por lo tanto, si dejamos que f (n) = 5n + 3, g (n) = n, c = 6, N = 3, hemos demostrado que f (n) < = 6 g (n) para n> = 3, o 5n + 3 = O (n). Es decir, si un algoriti thm requiere tiempo directamente proporcional a 5n + 3, es O (n). "
Ok, este tipo de cosas tiene sentido para mí. Dicen que si n = 3 o más, 5n + 3 toma menos tiempo que si n fuera menor que 3, por lo tanto 5n + n = 6n - ¿no? Tiene sentido, ya que si n era 2, 5n + 3 = 13 mientras que 6n = 12, pero cuando n es 3 o más, 5n + 3 siempre será menor o igual que 6n.
Aquí es donde me confundo. me dan otro ejemplo:
Ejemplo 2: "Vamos a mostrar que 4n^2 + 50n - 10 = O (n^2) Es fácil ver que:. 4n^2 + 50n - 10 < = 4n^2 + 50n para cualquier n Desde 50n < = 50n^2 para n
= 50, 4n^2 + 50n -. 10 < = 4n^2 + 50n^2 = 54n^2 para n> = 50. Por lo tanto, con c = 54 y N = 50, hemos demostrado que 4n^2 + 50n - 10 = O (n^2). "
Esta afirmación no tiene sentido: 50n 50n < =^2 para n> = 50.
no hay ninguna n va a hacer el 50n menos de 50n^2? No solo mayor o igual a 50? ¿Por qué siquiera mencionaron que 50n < = 50n^2? ¿Qué tiene eso que ver con el problema?
Además, 4n^2 + 50n - 10 < = 4n^2 + 50n^2 = 54n^2 para n> = 50 va a ser cierto sin importar lo que sea n.
¿Y cómo los números de picking muestran que f (n) = O (g (n))?
Adrian gracias. Leer a través de su explicación hizo todo mucho más claro. ¡Deberías ser un maestro! – ShrimpCrackers