Introducción

1

Grafos y Árboles: Estructuras de Datos Avanzadas

2

Estructuras de Datos: Introducción a Árboles y Sus Propiedades

3

Recursión: Concepto y Aplicaciones Prácticas con Ejemplos

4

Aplicaciones Prácticas de Grafos en Tecnología e Industria

5

Representación de Grafos: Matriz y Lista de Adyacencia

DFS

6

Búsqueda en Profundidad (DFS) en Árboles y Grafos

7

Implementación de DFS recursivo para búsqueda en árboles

8

Búsqueda en Profundidad (DFS) para Grafos: Enfoque Iterativo y Recursivo

9

Recorridos y Profundidad en Árboles Binarios y Enearios

10

Suma de Caminos en Árboles Binarios

11

Suma de Números de Raíz a Hoja en Árboles

12

Playground: Sum Root to Leaf Numbers

13

Implementación de Algoritmo DFS en Árboles Binarios con Golang

14

Resolución del Problema de Número de Islas con DFS

15

Conteo de Islas en Matrices con DFS

16

Playground: Number of Islands

17

Implementación de "Número de Islas" con Recursión en Python

18

Ejercicios Prácticos de Búsqueda en Profundidad (DFS)

19

Algoritmos de Búsqueda en Profundidad (DFS) en Problemas Comunes

BFS

20

Algoritmo BFS: Recorrido en Anchura de Grafos y Árboles

21

Implementación de BFS en Árboles usando Python

22

Movimiento mínimo de caballo en ajedrez infinito

23

Resolviendo el Problema Mínimo de Movimiento del Caballo en Ajedrez

24

Playground: Minimum Knights Moves

25

Resolución de Problemas de Caballos de Ajedrez con BFS en Python

26

Propagación de Plagas en Cultivos: Cálculo de Días para Contagio Total

27

Resolución de Rotting Oranges usando BFS

28

Playground: Rotting Oranges

29

Propagación de Plagas en Matrices usando BFS en Java

30

Construcción de Puentes Cortos entre Islas en Matrices Binarias

31

Resolución del Problema Shortest Bridge con DFS y BFS

32

Playground: Shortest Bridge Between Islands

33

Búsqueda del camino más corto entre islas usando BFS en Python

34

Búsqueda en anchura: Ejercicios prácticos y aplicaciones

35

Ejercicios avanzados de búsqueda en anchura (BFS) en programación

Backtrack

36

Algoritmo Backtracking: Solución de Problemas Complejos

37

Combinaciones de Letras en Números Telefónicos

38

Combinaciones de Letras a partir de un Número de Teléfono

39

Generación de combinaciones de letras con teclados numéricos en C++

40

Playground: Letter Combinations of a Phone Number

41

Generación de Direcciones IP Válidas a partir de Cadenas Numéricas

42

Generación de IPs válidas con backtracking en C++

43

Playground: Restore IP Addresses

44

Búsqueda de Palabras en Matrices: Solución y Complejidad

45

Búsqueda de Palabras en Matrices usando Backtracking y DFS

46

Playgrund: Word Search

47

Implementación de búsqueda de palabras en matrices con DFS en JavaScript

48

Resolución del problema de las n reinas en ajedrez

49

Ejercicios de Backtracking: Combinaciones y Permutaciones

50

Combinaciones y Permutaciones con Backtracking

Próximos pasos

51

Algoritmos de Grafos: MIN/MAX-HIP, TRI, Topological Sort y Dijkstra

52

Algoritmos y Estructuras de Datos en la Ingeniería

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Algoritmos de Grafos: MIN/MAX-HIP, TRI, Topological Sort y Dijkstra

51/52
Recursos

¿Qué son los MIN-HIP y MAX-HIP?

Al profundizar en estructuras de datos, es fundamental conocer los MIN-HIP y MAX-HIP, tipos especializados de árboles utilizados para implementar colas de prioridad. Estos árboles permiten organizar los datos según su prioridad de manera eficiente.

  • MIN-HIP: Siempre tiene el valor más pequeño en la raíz, lo que facilita acceder al elemento de menor prioridad rápidamente.
  • MAX-HIP: Mantiene el valor más grande en la raíz, ideal para acceder al elemento de mayor prioridad.

Estas estructuras son vitales cuando necesitas extraer los "N" elementos más grandes, más pequeños, más largos o más cortos. El insertar un nuevo valor tiene una complejidad temporal de LOG N en el peor de los casos. Esto es porque se debe reestructurar el árbol para mantener el orden y la prioridad adecuadas.

¿Cómo funciona la estructura de árbol TRIE?

El TRIE es una estructura de datos útil y eficiente, particularmente en tareas relacionadas con el almacenamiento y búsqueda de palabras. Su diseño particular se adecua a diversas aplicaciones:

  • Almacenamiento eficiente: Útil para guardar muchas palabras de un diccionario ocupando menos espacio.
  • Verificación de prefijos: Puedes determinar si una palabra es un prefijo de otra rápidamente.
  • Búsqueda de palabras: Facilita la verificación de la existencia de palabras en un documento.
  • Asignación en servidores web: Utiliza prefijos de URL para definir la herencia y asignación de operaciones.

Este árbol comienza con una raíz, que puede considerarse un asterisco (*), y a partir de ahí, se expanden distintas ramas representando letras de palabras. Un nodo especial marca el final de una palabra, por ejemplo, el símbolo de numeral (#). El TRIE organiza palabras compartiendo prefijos comunes en sus caminos, haciendo que las búsquedas de palabras comiencen desde el nodo de ese prefijo específico.

¿Qué beneficios ofrecen los algoritmos Topological Sort y Dijkstra?

Explorar algoritmos utiliza las estructuras de grafos para resolver problemas diversos. Aquí, te presento dos algoritmos fundamentales y sus aplicaciones:

Topological Sort

El Topological Sort es clave para organizar grafos basada en sus dependencias. Considera las siguientes aplicaciones:

  • Construcción guiada: Útil cuando deseas seguir un orden específico, como armar un objeto siguiendo un manual.
  • Planificación académica: Ayuda a administrar los cursos que necesitas completar antes de avanzar a otros, similar a un Pensum universitario.
  • Ordenación alfabética: Facilita el orden de elementos según un criterio, como letras en un diccionario.

Este algoritmo permite identificar ciclos en un grafo, indicando dependencias infinitas o redundantes.

Algoritmo de Dijkstra

Dijkstra es fundamental para encontrar caminos mínimos o más cortos en un grafo. A diferencia de simplemente contar nodos, incorpora pesos y variables que influyen en el camino:

  • Rutas con pesos: Determina rutas optimizadas considerando factores como el tráfico real o tiempo de viaje entre nodos.
  • Rápidez en situaciones críticas: En escenarios de vida o muerte, como transportar a un paciente a un hospital, identifica la ruta más rápida analizando variables en tiempo real.

Este algoritmo transforma problemas abstractos en soluciones prácticas, como calcular la ruta que tarda menos tiempo mediante evaluación de pesos en las conexiones de un grafo.

¡Espero que estas discusiones enriquezcan tu entendimiento sobre estructuras de datos y algoritmos! Continúa aprendiendo y explorando nuevas aplicaciones en el fascinante mundo de los algoritmos.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Se sabe que El Algortihmo de Dijkstra : { Utiliza el algoritmo de ruta más corta }\n esb Bien Usado en el Protocolo de Enrutamiento de CapaRed del Modelo OSI : OSPF \[ Open Shortest Path First ] el Cual es un protocolo de Estado de enlace que enruta las datos por el camino \[ Ruta ] mas corto entre una red de routers en una MAN \[ Metropolitan Area Network ] para trasnmitir la communicacion de datos entre computadoras por la ruta mas corta donde los aristas represetan los pesos por el tiempo TTL en \[ ms ] , los verticicses son los nodos : Routers de my ISP , Este protocolo es parte de los Grandes Protocolos de enrutamiento dinamico que utilizan Grafos como estructura de datos para guardar los routers que existen en la capa de Distribucion de ISP en TCP/IP , el protocolo OSPF hace un buen trabajajo identificando la ruta mas corta \[ que tome menor tiempo posible entre Routers para enRutar los mensajes por ally ] OSPF aprende de las redes vecinas y sabe la tropologia de su redes adyacentes por intercomuncacion entre routers conectados , este Mundillo de DSA es Fantastico cuando ves como se aplica a otras areas IT como las Redes de Computadoras interconectadas WAN y en General L Internetwork, Dijstra es un protocolo Inteligente \[ No AI ] pero si tiene la capacidad de aprender de sus routers vecinos mediante mensajes que se intercambian cada 500 ms , asi tambien es dinamico porque se puede aprender en casos reales cuando una Infrasestructura falla por una red, OSPF esta en la capacidad de alertar a su mismo router actual que ocurrio un fallo en la red mas corta y ahora debe trasmitir los datos por otra ruta \[ la 2nda mas corta ] todo por medio de ALgortimo de Dijkstra en Grafos BiDirijidos, toso los routers se conocen y saben por donde es mejor enviar los mensajes encryptados en la mejor routa que sea el tiempo mas corto, aqui el tiempo representa las conexiones y los routers los nodos de mi grafo de routers, no es distancia en \[ km ] como se prodia pensar mas sii el tiempo en \[ms ] \nUna Vez entiendes de Redes se abre el conocimiento a cosas mas profundas como estas , \nEL CUrso de Algortimos no Lineales esta Genial \n Ahora Yo pienso todo en forma de grafos y arboles y ese erase mi principal proposioto para con tomar toda esta>Saga de >Cursos >Algortimos que justo termina aqui. pero Nunca parare deAprender ps siempre habran nuevas cosas pro aprender mas , en DSA y Redes. \n My proximo reto es entender bien los hash Tables como DS para comprender los algoertimos edee Hashing en la Cryptografia Asimetrica que es otro tema facinante en las Redes \[ \Capa6 -> OSI --> Session Layer \ \
Nunca pares de Aprender No es solo un Lema mas es todo una Filosofia de Vida en la busqueda del conocimiento Activo y constante \nGracias PLatzi pro este curso tan Genail, La Proffe Camilla tambien fue fantastica durante todos estso X4 \* cursos .

Un gran curso!

Ahora con el ejemplo del lego, tambien es un caso de una pila, donde no puedo sacar una ficha de enemedio si no quito las fichas que estan arriba.
Otro ejemplo es un torre de Hanoi, donde tengo que pasar los elementos de la torre entre cada estaca, sin que uno más grande este encima de uno chico.

Ambos siguen el caso de las pilas LIFO (Last-in, First-out o último en entrar, primero en salir).

Me encanta el ejemplo del lego.