¿Por qué son importantes las estructuras de datos y los algoritmos?

Supongo que te refieres a roles con respecto al desarrollo de aplicaciones de software. En ese caso, los ADT (estructuras de datos abstractos) están en todas partes en forma de pilas, colas y listas. Funcionan como partes integrales de arquitecturas de proceso, contenedores de datos y conjuntos de resultados intermedios. Los árboles construidos a partir de nodos de datos también son bastante ubicuos, ya sea para el almacenamiento / compresión de datos, o como parte de la representación continua de información para búsqueda o visualización. Por ejemplo, el DOM a menudo se representa como un árbol. Algoritmos sabios, depende de lo que consideres un algoritmo. En un sentido general, cualquier conjunto bien definido de pasos para resolver un problema es un algoritmo. Creo que a usted le preocupa específicamente cómo se usan o se encuentran los algoritmos dentro de las aplicaciones de software, y realmente depende de qué conjuntos de clases de problemas esté tratando de abordar esa aplicación. Los algoritmos de clasificación, compresión y búsqueda de distancia se usan comúnmente. Por lo general, estos no se reinventan mucho, ya que existen ejemplos de casos generales demostrablemente óptimos de cada uno. Los algoritmos de búsqueda, indexación, cifrado y hash también son bastante comunes. En el proceso de escribir en este formulario, revisar la ortografía, publicarlo a través de https, almacenarlo en los servidores de datos de back-end de Quora, hacerlo accesible para los usuarios por su sitio web front-end, estoy seguro de que al menos uno de cada uno de estos algoritmos terminó siendo usado en algún momento, y posiblemente más que eso.

Nicklaus Writh escribió un libro “Algoritmos + Estructuras de datos = Programas”. Eso prácticamente lo resume todo. Los algoritmos describen los pasos de la computación. Las estructuras de datos describen el diseño, el posicionamiento y las relaciones de las ubicaciones en la memoria. Por ejemplo, ordenar la estructura de datos de una matriz es un problema muy común. Existen muchos algoritmos para verificar el rendimiento y la complejidad que clasifican los arreglos. Reinventar todo esto llevaría mucho tiempo si fuera posible. Pero abrir un libro y leer los resultados de décadas de uso y análisis es muy útil en los programas de desarrollo.

“Un algoritmo” es “una forma de hacer” algo. Cualquier cosa. No se limita a las computadoras.

Dado que la programación es la resolución de problemas, es importante encontrar una manera de hacerlo.

¿Estructuras de datos? A menos que su programa esté totalmente libre de datos, tiene datos, y tiene que haber alguna estructura para ello; los datos diversos que se encuentran en todo el programa son simplemente un desastre inútil. (Y eso es todo una “estructura de datos”: ¿cómo se guardan estos datos? ¿De qué forma?)

Lea http://cdn.preterhuman.net/texts … si desea aprender sobre ambos.

Los algoritmos y las estructuras de datos son las herramientas básicas de un programador. Son tan esenciales como un martillo (o pistola de clavos) para un enmarcador de la casa. Son las herramientas que resuelven problemas para que no tenga que reinventar la solución.

Debe comprender cuáles son, por qué y cómo funcionan, y cuáles son sus defectos. Saber esto le ahorrará una gran cantidad de tiempo que podría desperdiciarse tratando de resolver un problema que tiene una solución.