¿Qué son los algoritmos y la estructura de datos y cómo puedo comenzar con ellos?

¿Qué son los algoritmos y la estructura de datos y cómo puedo comenzar con ellos?

Estructuras de datos: Básicamente, solo una forma de estructurar datos durante el tiempo de ejecución de su programa. Hay muchos tipos diferentes, pero incluso si todo el concepto es nuevo para usted, lo más probable es que ya haya encontrado al menos uno de ellos; Arreglos

frutas: = [] cadena {“banana”, “manzana”, “naranja”}
fmt.Println (frutas [1]) // imprime manzana

Esencialmente, nada más que una lista ordenada de elementos, que está estrechamente relacionada con su primo, la matriz asociativa. Lo mismo, excepto en lugar de un índice numerado, la clave puede ser algo diferente a un número (por ejemplo, una cadena).

lista: = mapa [cadena] cadena {“fruta”: “plátano”, “vegetal”: “zanahoria”}
fmt.Println (lista [“vegetal”]) // imprime zanahoria

Estas son las dos estructuras de datos más comunes y pueden llevarlo sorprendentemente lejos, aunque siempre se recomienda que le dé a las muchas otras estructuras de datos al menos una mirada superficial. El tema parecerá difícil al principio, pero en realidad no lo es, en mi opinión. Puede encontrar buenos artículos y lecciones sobre el tema directamente en Internet.

Otras estructuras de datos incluyen listas vinculadas, conjuntos de hash, montones, árboles, lo que sea. Naturalmente, también hay innumerables libros sobre estructuras de datos y algoritmos. Entonces, ahora que lo pienso, todo lo que necesitas es una tarjeta de biblioteca.

Algoritmos: Oh, cómo la cultura popular ama esta palabra … hace que todo suene genial al instante. Pero en realidad es solo una palabra para instrucciones.

Sí … realmente, un poco decepcionante, ¿no?

No es que no sean inmensamente útiles y ni siquiera voy a tratar de enumerarlos a todos. Tenemos algoritmos para todo, búsqueda, clasificación, hash, compresión y la lista continúa.

Una vez más, muchos de estos ya están implementados en muchos lenguajes de programación populares. Por ejemplo, si desea ordenar una matriz, es probable que no tenga que preocuparse porque las probabilidades son buenas, su elección de idioma ya implementa el mejor algoritmo para el trabajo, y lo mismo ocurre con muchas otras tareas comunes, como generar hashes .

Supongamos que el problema es encontrar permutaciones [matemáticas] nPr [/ matemáticas]

[matemáticas] P (n, r) = n! / (nr)! [/ matemáticas]

Nota: [math] nPr [/ math] – Número de permutaciones diferentes de n objetos distintos tomados a la vez

¿Qué harás?

Harás los siguientes pasos.

  1. encontrar n!
  2. encontrar r!
  3. dividir n! & r! y guardarlo como respuesta
  4. Mostrar respuesta

Arriba están los pasos conocidos como algoritmo.

Algoritmo significa pasos para resolver cualquier problema.

En lenguaje fácil: algoritmo = pasos

Si su problema es hacer té, entonces los pasos para hacerlo son algoritmo.

—————————————————————————————————————

Supongamos que está en la estación de tren para reservar boletos.

¿Cómo se arreglan las personas?

¿Están de pie al azar?

Respuesta: no

Están haciendo cola. ¿Por qué línea? ¿Por qué no otra cosa?

La línea tiene la siguiente ventaja.

La persona que vino primero tendrá la primera oportunidad de reservar el boleto.

Debido a la ventaja anterior de la línea, las personas hacen cola y no de manera aleatoria. Si se paran al azar, también se puede hacer la reserva de entradas, ¿no?

La posición aleatoria hará que el procesamiento de la reserva sea ineficiente.

Del mismo modo, para hacer que los pasos (algoritmo) sean eficientes, almacenamos los datos de manera específica. Esa forma se conoce como estructura de datos.

Para aprender las estructuras de datos, recomiendo lo siguiente:

  • Estructuras de datos – YouTube
  • Code Monk – Sé un mejor programador

Algoritmos: escriba cada paso de la preparación de una tortilla, ese es su algoritmo.

Estructuras de datos: mientras prepara una tortilla, puede decidir en un caso (estado / mundo / hora) que en este estado cortaré cebollas y lo siguiente que se hará será cortar tomates. Esta es su lista vinculada que tiene una parte de datos y una dirección o referencia a otro proceso. Por ejemplo array; Al principio, coloca todos los ingredientes en un lugar que puede ser una variedad de sus ingredientes.

Conclusión: estas son las herramientas más simples e intuitivas que se nos ofrecen (aunque puede encontrar una) para facilitar nuestro proceso de programación.

Dónde comenzar: en cualquier lugar que desee, lea un libro al respecto, mire tutoriales en video o cualquier otro recurso. Pero trate de llevar una intuición de la vida real a los ejemplos, esto le facilitará mucho la comprensión.

¡Buena suerte y puedes hacerlo!

Una estructura de datos es un modelo para los datos que se procesan en su programa informático. Representa el diseño y los tipos de datos para sus diversos elementos.

Un algoritmo es una receta paso a paso de lo que debe hacer la computadora. Es el epítome de la lógica. Típicamente, la estructura de datos será utilizada por el algoritmo.

En cuanto a cómo comenzar, hay muchos libros y referencias para estructuras de datos y algoritmos. Solo elige uno y corre con él. En última instancia, desea utilizar este conocimiento junto con su actividad de programación, como aprender a programar.

More Interesting

¿Cuál es el algoritmo utilizado para mostrar el orden de amigos que se muestra en toda la lista de amigos en Facebook?

¿Cuál es la mejor manera de saber qué estrategia (codiciosa, dividir y conquistar, programación dinámica) funcionaría mejor para un problema de algoritmo en particular?

Conozco la implementación básica de diferentes estructuras de datos como árboles, gráficos, colas y muchos más para inserción, eliminación, recorrido. Ahora, ¿cómo procedo a construir un sistema operativo?

¿Cuál es la mejor manera de detectar conjuntos similares de flotadores de 0 a 1?

¿Qué alternativas hay para los algoritmos de escalada?

¿Cómo se puede usar un algoritmo genético para clasificar las soluciones candidatas?

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

En un algoritmo de búsqueda binaria existe la línea, si la clave == A [mid] return (mid + 1). ¿Por qué (mediados + 1)?

¿Qué es un filtro de Kalman?

¿Cuál es la diferencia entre Algorithm y API?

¿Cuál es la diferencia entre O (n!) Vs O (2 ^ n) complejidad de tiempo?

¿Por qué usarías una cola en lugar de una lista vinculada? ¿No es una cola una versión peor de una lista vinculada?

Cómo eliminar caracteres duplicados en la cadena char * p = 'chaabbcc'

¿Cuáles son todas las estructuras de datos que conoce? ¿Cuál de estos usas con frecuencia? Agrúpelos en "Básico" y "Avanzado".

¿Hay algún algoritmo de dirección de camino legible para humanos?