Según la ley de Moore, el número de transistores de chips de CPU se duplica cada 18 meses. En este momento, la velocidad de la CPU en sí no se duplica necesariamente, sino más bien la cantidad de núcleos y otras cosas como un mejor almacenamiento en caché, etc.
Ahora, hagámoslo simple y digamos que la velocidad de la CPU se duplica o incluso se cuadruplica cada 18 meses, aunque sabemos que este no es el caso.
Ahora, un problema del mundo real en la actualidad podría involucrar fácilmente a cientos de millones o miles de millones de datos de entrada.
- ¿Son fáciles las entrevistas de programación?
- Cómo verificar si una cadena contiene otra subcadena en JavaScript
- ¿Qué estilo de codificación es apropiado en las entrevistas?
- ¿Cuáles son las preguntas generales que se hacen en las entrevistas de IPM?
- Si ha sido rechazado de una escuela de codificación de élite y ha vuelto a aplicar y luego ha sido aceptado, ¿cuál es su historia?
Digamos que su CPU puede ejecutar mil millones de instrucciones por segundo. Ahora, hoy, su código que lee 1 millón de entradas y calcula algo en tiempo O (n ^ 2) tomará 1,000,000,000,000 / 1,000,000,000 = 1000 segundos = 16.6 minutos .
¡En 18 meses, con la duplicación de la velocidad de la CPU, el aumento de RAM, mejores mecanismos de almacenamiento en caché, etc., su código ahora puede ejecutarse cuatro veces más rápido! ¡Ahora eso lo reduce a unos 4 minutos ! Bastante impresionante, ¿eh?
O
¡Puede mejorar el algoritmo de su código y hacer que se ejecute en tiempo O (nlogn) y su código puede ejecutarse en 1,000,000 * log (1,000,000) / 1,000,000,000 = 0.006 segundos = 0.0001 minutos! ¡Hoy!
Ahora, ¿necesitamos algoritmos rápidos o no? Tú decides.