Cuando escribes programas por el simple hecho de hacerlo, ¡solo harás mucho bien!
Primero entienda que está aprendiendo Algoritmos y Estructuras de Datos para resolver un problema mayor. ¡Serán engranajes, ruedas, cojinetes y tornillos en una máquina más grande y compleja (me refiero al software 🙂) y no sirven de nada por sí solos! Bueno, ¡casi ninguno de ellos lo es! ¡Principalmente!
Solo te daré algunas instancias en las que si te acercas al problema más grande con una vista de pájaro, puedes “localizar” dónde encajará tu pieza de rompecabezas en particular. Usaré C como mi lenguaje de referencia aquí.
- Cómo restar enteros usando un algoritmo
- ¿Cuál es la lógica de la búsqueda de Fibonacci?
- ¿Qué es el nodo en la estructura de datos?
- Según Knuth, un algoritmo puede tener cero o más entradas. ¿Alguien puede darme un ejemplo de un algoritmo sin entrada?
- Cómo verificar si la suma de los números de la primera mitad y la segunda mitad de una matriz es la misma
Uso de matrices : las matrices son la primera estructura de datos que cualquier estudiante de programación aprendería, incluso sin saberlo. En realidad, vamos a aprender sobre las matrices como “Colecciones de tipos de datos similares”, como se da en la mayoría de los libros, ¡vamos a seguir pensando en ellas como algo aislado de los demás!
- Piense en ellos como una lista de elementos en los que se deben realizar operaciones similares y, por lo tanto, deben tener el mismo tipo de datos. Por ejemplo, todas las variables como edad, puntaje, distancia en metros, etc. se almacenan como enteros. pero no dividimos las edades por puntaje ni multiplicamos dos distancias. Tampoco vamos a encontrar promedios de edades + puntajes + distancia (¡lógicamente hablando!). Entonces, aunque son del mismo tipo de datos, pertenecerían a diferentes matrices.
- En segundo lugar, como una lista de comestibles, necesitamos eliminar los artículos que ya hemos comprado. Pero, con una excepción, es erróneo e ineficiente mantener huecos dentro de una matriz almacenada digitalmente. Por lo tanto, cada operación de eliminación requiere elementos, después del que se va a eliminar, para moverse hacia el comienzo de la matriz en un lugar.
- De manera similar, a diferencia de una lista en papel, no podemos usar una inserción “in situ” de un nuevo elemento sin sobreescribir otro. Por lo tanto, para preservar los elementos existentes, necesitamos mover todos los elementos, comenzando desde el anterior antes del cual tendría lugar una nueva inserción, hacia el final de la matriz.
- Una vez más, cuando hacemos las operaciones anteriores, debemos ocuparnos de las limitaciones “físicas” del tamaño de la matriz y el número actual de elementos legales en ella. No es trivial expandir una matriz más allá de su capacidad y es erróneo (al menos lógicamente) eliminar más elementos de los que estaban presentes.
- Ahora hacia la idoneidad de las matrices (y algoritmos relacionados) en un esquema más amplio de cosas. Si ha estudiado sobre estructuras y matrices de estructuras en C (que supongo que tiene), considérelas como sus registros. Y conjuntos de registros como tablas / listas de datos. Puede ver / estudiar algoritmos de clasificación y búsqueda principalmente en int sy a veces en cadenas s. El único campo (conjunto de) del registro que podemos usar para ordenar / buscar todos los registros, se tratará como su clave y se usará como criterio para ordenar / buscar en la lista de datos. La lógica seguirá siendo la misma, pero la variable escalar será reemplazada por un campo de un registro.
Graduarse a listas – o listas de Me gusta – Debido a los problemas en la inserción y eliminación de datos y la limitación de un espacio de almacenamiento casi fijo, las listas dinámicas se crean con estructuras autorreferenciales . Implican un poco de sobrecarga en términos de espacio adicional y limitan el acceso aleatorio a cualquier elemento de la lista (lo que podría afectar), pero son más adecuados para las tablas de datos que son de naturaleza transaccional con inserciones y eliminaciones frecuentes en cualquier lugar. Las diferentes formas de la lista vinculada proporcionan diferentes “actualizaciones” sobre la base: la lista de encabezados se puede usar para almacenar metadatos, las listas doblemente enlazadas se pueden usar para una enumeración más rápida en ambas direcciones, y así sucesivamente.
Las pilas y Ques son listas : son listas especiales con cierta disciplina impuesta: LIFO para la pila y FIFO para la cola.
- Una pila se puede considerar como un lugar de descanso temporal para atender algo más urgente o en la cadena de acciones. Almacena nuestra historia local de movimientos que se pueden rastrear (rastrear hacia atrás). Por ejemplo, cuando hace clic en el botón de notificaciones en la aplicación Quora, las notificaciones aparecen sobre la pantalla de inicio. Cuando hace clic en una notificación específica, aparecen sus detalles. Pero, cuando presiona el botón ‘atrás’ en su teléfono móvil de la flecha hacia atrás (<-) en la aplicación, vuelve a aparecer la pantalla anterior. Además, la visualización visual / gráfica de la notificación recién abierta también cambia para indicar que se ha leído. Esta es una pila de trabajo aquí con el seguimiento hacia atrás (retrocediendo en secuencia de acciones) y el valor de retorno (indicado por el cambio en la apariencia visual de las notificaciones que acaban de leer).
- Del mismo modo, una cola se puede utilizar como área de espera temporal para acciones que se tomarán una tras otra. De nuevo toma el acase de