¿Necesito matemáticas para aprender estructuras de datos y algoritmos?

Bueno, déjame dar un paso atrás cuando hiciste una suposición en tu pregunta.

  1. Los algoritmos son matemáticos . Son un procedimiento paso a paso inequívoco que toma entrada y produce salida.
  2. Las estructuras de datos se utilizan para administrar y manejar datos para que pueda resolver problemas de manera eficiente (en muchos entornos) y aplicarles algoritmos.

La respuesta corta: sí! Los tipos de matemáticas? Depende Necesitará obtener una formación básica en matemáticas y análisis discretos para obtener una formación adecuada en ambas materias. Esos servirían de base para estudiarlos. Tenga en cuenta que depende mucho del nivel del curso que esté tomando. No permita que la palabra “m” lo asuste, es necesario comprender el tema correctamente, así que tómese su tiempo y haga preguntas. Nada cambia de la noche a la mañana.

Si se trata más de una perspectiva de programación sobre estos temas, los temas pueden ser menos intensivos, pero es posible que no esté aprendiendo “por qué” las cosas son verdaderas y más cómo aplicarlas. Aplicar las cosas no es difícil si te tomas el tiempo para hacerlo, pero entender por qué las cosas son verdaderas y luego implementarlas con cuidado es otra actividad. No dejes que te intimide. He tenido muchos estudiantes que dirán directamente que tienen miedo de las Matemáticas en CS, pero si te tomas tu tiempo y eres dedicado, deberías estar bien.

Tenga en cuenta que los informáticos teóricos generalmente estudian estos temas desde un punto de vista completamente matemático, así que tenga en cuenta que estos temas tienen muchas facetas para ellos de lo que probablemente verá en un curso.

Uno de los conceptos que se enseña en una clase sobre estructuras de datos y algoritmos es la noción de peor tiempo de ejecución posible o tiempo de ejecución promedio para que un algoritmo realice alguna tarea (ordenar una lista de enteros es un ejemplo canónico).

Este tema se explica al comparar cuántos cálculos y movimientos de datos en la memoria deben realizar estos diferentes algoritmos para realizar esa tarea y cómo se comparan.

Los resultados generalmente se expresan en términos de funciones matemáticas [matemática] O = n ^ 2 [/ matemática] o [matemática] O = n [/ matemática], o [matemática] O = n (log (n)) [/ matemática ] donde [math] O [/ math] es el peor tiempo de ejecución. Tendría que ser capaz de comprender o aprender lo que significan estas cosas.

Además, la programación en general requiere el uso de las matemáticas a nivel de álgebra universitaria. Debería sentirse muy cómodo sustituyendo valores por variables y resolviendo x, y debería estar acostumbrado a la idea de que una función toma ciertas entradas y tiene una salida definida basada en esa (o esas) entradas.

Me encantan las estructuras de datos, y nunca he tomado un curso de cálculo si eso ayuda. Si no estás en este nivel de matemática, no te desanimes. Puedes aprender lo que quieras.

Cuando aprende estructuras de datos y algoritmos, implica más con matemáticas discretas que las matemáticas que aprende en la escuela secundaria (resuelva ecuaciones, cálculos, etc.). Las matemáticas discretas son sobre combinatoria, conteo, lógica, gráfica, … y creo que es menos abstracta y más natural. Al principio, no necesita preocuparse demasiado por las matemáticas, si encuentra una definición o fórmula, puede buscarla bastante rápido, a menudo es bastante simple y fácil de entender. Por supuesto, si quiere llegar lejos en estructuras de datos y algoritmos (como un investigador), necesitará matemáticas. Pero en mi opinión, la mayoría de los trabajos en el desarrollo de software y aplicaciones no requerirán matemáticas avanzadas.

Gracias por el A2A

Necesita saber matemáticas básicas discretas para hacer cosas como calcular la complejidad algorítmica y resolver problemas.

Algún conocimiento de la probabilidad ayuda.

Estadísticas y conocimiento sobre distribuciones, media, promedio, mediana, cuándo usar lo que es útil para hacer estimaciones de rendimiento.

No es necesario tener un profundo conocimiento matemático para ser un programador productivo.

More Interesting

¿Por qué a la mayoría de la gente le cuesta resolver problemas de algoritmos?

¿Qué es un problema algorítmico que es fácil de resolver en Haskell pero difícil de resolver en Python?

¿Cuáles son algunas habilidades de programación, algoritmos o marcos que se ven muy bien pero que son muy simples?

¿Obtuviste un trabajo de ingeniería de software al aprender algoritmos a través de MOOC?

¿Qué compañías necesitan algoritmos de flujo óptico fuertes?

¿Cuáles son algunos avances en ciencias de la computación realizados por científicos mientras trabajaban en la industria?

¿Cómo funcionará el algoritmo KNN para la segmentación de imágenes?

¿Cuál es la diferencia entre el algoritmo de firma y el algoritmo hash de firma en un certificado SSL?

¿Cuáles son las posibles amenazas para un algoritmo RSA y cuáles son sus contramedidas?

¿Cuál es la complejidad temporal de eliminar el borde de la estructura de la lista de adyacencia en un gráfico?

Cómo ordenar la matriz de tipos primitivos en orden descendente en Java

¿Existen algoritmos de descenso de gradiente que intenten ajustar valores de datos que representan cada uno un promedio de puntos de datos desconocidos individualmente?

¿Están sobrevalorados los algoritmos, en comparación con la escritura de software limpio, escalable y de fácil mantenimiento? Sé mi parte de algoritmos y acerté mis entrevistas. Pero en la industria, se trata de cumplir con los requisitos de software y administrar la base del código.

¿Cuál es el enfoque de IA para resolver el Cubo de Rubik aleatoriamente barajado?

¿Cuál es el enfoque algorítmico para invertir un árbol binario dado?