Red de conocimiento informático - Conocimientos de programación - ¿Por qué los programadores deberían aprender algoritmos y campos de aplicación?

¿Por qué los programadores deberían aprender algoritmos y campos de aplicación?

Para muchos programadores de programación y desarrollo, deberían haber dominado muchas tecnologías, como la arquitectura de desarrollo organizacional, entonces, ¿comprende las tecnologías relacionadas con algoritmos? Hoy, aprendamos sobre ellas juntos en Beijing Computer Training, ¿por qué? ¿Deberían los programadores aprender algoritmos y áreas de aplicación?

La importancia de aprender algoritmos

Antes de presentar algoritmos específicos, permítanme hablar primero sobre mi intención original personal de aprender algoritmos. Mi intención original no era más que dos cosas: en primer lugar, las empresas de Internet como BAT preguntan sobre el conocimiento de los algoritmos durante las entrevistas de contratación. Si quiero ingresar a una empresa de Internet, debo aprender bien los algoritmos y, en segundo lugar, mejorar las habilidades básicas del desarrollo personal; aprendiendo algoritmos, de modo que, para diferentes escenarios, pueda elegir correctamente las estructuras de datos y algoritmos correspondientes, haciendo que el programa sea más robusto y mejorando la eficiencia operativa del programa.

Campos de aplicación

Actualmente, varias subdivisiones de computadoras involucran diferentes algoritmos. Tomemos como ejemplo los motores de búsqueda. Normalmente utilizamos navegadores como Google y Baidu. Siempre que ingresemos una palabra clave, el navegador devolverá rápidamente una colección relacionada. Hay muchos algoritmos ocultos detrás de esta colección. Sin estos algoritmos, no podríamos obtener los resultados que queremos tan rápidamente. Otro ejemplo es la inteligencia artificial, que utiliza algoritmos de modelos computacionales para realizar diversos escenarios de aplicación, como el reconocimiento del cuerpo humano y el reconocimiento de voz.

Análisis de algoritmos

Hemos introducido anteriormente que los algoritmos son métodos para resolver problemas y, para un mismo problema, pueden haber diferentes soluciones. Por tanto, para medir la calidad de un algoritmo se proponen los dos conceptos de complejidad temporal y complejidad espacial.

Complejidad del tiempo

Generalmente, el número de ejecuciones repetidas de operaciones básicas en un algoritmo es una función f(n) del tamaño del problema n, y la medida del tiempo del algoritmo es registrado como T (n) = O (f (n)), lo que significa que a medida que aumenta el tamaño del problema n, la tasa de crecimiento del tiempo de ejecución del algoritmo es la misma que la tasa de crecimiento de f (n), que se denomina Complejidad temporal asintótica del algoritmo, o complejidad temporal para abreviar.

Complejidad del espacio

La complejidad del espacio es una medida de la cantidad de espacio de almacenamiento que un algoritmo ocupa temporalmente durante la operación, registrada como S(n)=O(f(n)) . La calidad de un algoritmo se mide principalmente desde dos aspectos: el tiempo de ejecución del algoritmo y el espacio de almacenamiento que requiere.