Nadie en este tipo de entrevistas de empresa le hará alguna pregunta que pueda responder directamente de un libro de texto si está entrevistando para el rol de SWE. Le preguntarán problemas del mundo real que los utiliza, como obtener registros entre fechas de un archivo de registro masivo.
Hay una gran diferencia entre usar sort () e implementarlos. ¿Alguna vez se preguntó quién escribe la función de clasificación y de dónde viene? Uno no puede sobrevivir un día sin una comprensión adecuada de O (n) al escribir código que se ejecutaría miles de millones de veces al día. ¿Alguna vez se preguntó cuántas veces se llamaría la función de clasificación implementada en JDK por segundo si considera todos los servidores globales? Un retraso de 1 ms se traduciría en millones de dólares en ahorros y efectos secundarios adicionales, como una menor emisión de CO2.
¿Este negocio de complejidad solo es relevante para un trabajo de tan bajo nivel? Alguna vez se preguntó sobre la diferencia entre
- ¿Cuáles son los algoritmos que se pueden usar en aplicaciones web del mundo real además de ordenar o buscar?
- Cómo guardar la entrada del usuario dentro de una matriz en Java
- ¿Existe una justificación "rigurosa" de por qué los algoritmos de aprendizaje profundo necesitan una gran cantidad de datos?
- ¿Qué tipo de datos debo usar en C para almacenar datos como a1b2c3? ¿Podría usar una matriz de caracteres para almacenar esto como una cadena?
- En la visión por computadora, ¿el aprendizaje automático va a hacer obsoletos los algoritmos de aprendizaje no automático?
Lista a = nueva Arraylist ();
Lista a = nueva LinkedList ();
Hasta que comprenda O (n) de búsqueda, adición y eliminación de la matriz y la lista enlazada, tendrá dificultades para usar el tipo de lista correcto. Por supuesto, el hardware más rápido enmascara la mayoría de las ineficiencias de software subyacentes, pero si se le da la opción de ahorrar algunos núcleos / ram (dinero), ¿debería / debería uno decir no?
He visto compañías que pierden contratos y abren ofertas porque necesitaban hardware adicional frente a sus competidores. ¿Alguna vez se preguntó cómo un sistema puede utilizar menos recursos para realizar una tarea? En igualdad de condiciones, ¡es la misma O (n) lo que marca la diferencia!
Entonces, el punto es: O (n) es súper útil cuando se trabaja a escala.