From 7122efab2df4f45033994f540088ee67da16c93e Mon Sep 17 00:00:00 2001 From: Jose Becerril Date: Wed, 17 Jan 2024 19:39:29 -0600 Subject: [PATCH 1/3] Revert "Feature: Added file with Hello World" This reverts commit fd29f0d8f863e03d7c5a3bafba281dac8c964b66. --- jlbs.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 jlbs.txt diff --git a/jlbs.txt b/jlbs.txt deleted file mode 100644 index ce01362..0000000 --- a/jlbs.txt +++ /dev/null @@ -1 +0,0 @@ -hello From b11069abd5885f7c72ee9d8486a370f84b5e0883 Mon Sep 17 00:00:00 2001 From: Vicente28CF Date: Thu, 18 Jan 2024 22:37:07 -0600 Subject: [PATCH 2/3] Nuevo archivo creado prueba.txt --- Prueba.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Prueba.txt diff --git a/Prueba.txt b/Prueba.txt new file mode 100644 index 0000000..5e1c309 --- /dev/null +++ b/Prueba.txt @@ -0,0 +1 @@ +Hello World \ No newline at end of file From 17ac4f1133f5358878005cf1771dee1da815f023 Mon Sep 17 00:00:00 2001 From: Vicente28CF Date: Wed, 6 Mar 2024 20:30:42 -0600 Subject: [PATCH 3/3] Feature: Added DFS algorithm and BFS algorithm --- A_D_V/bfs_dfs_algorithms.py | 104 ++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 A_D_V/bfs_dfs_algorithms.py diff --git a/A_D_V/bfs_dfs_algorithms.py b/A_D_V/bfs_dfs_algorithms.py new file mode 100644 index 0000000..6d886b2 --- /dev/null +++ b/A_D_V/bfs_dfs_algorithms.py @@ -0,0 +1,104 @@ +""" +================================ +algorithms implementation +================================ + +Ejemplo de Algoritmos DFS Y BFS usando el mismo grafo para los ejemplos, +uso de la libreria time para obtener el tiempo de ejecución, +EJECUTAR python bfs_dfs_algorithms.py + +""" + +import time +#!ALGORITMO 1 DFS (Depth-First Search) +def dfs_method(grafo, nodo_inicial): + """ + Realiza una búsqueda en profundidad iterativa en un grafo. + + Parámetros: + grafo: Un diccionario que representa el grafo. + nodo_inicial: El nodo inicial a explorar. + """ + pila = [nodo_inicial] + visitados = set() + + start_time = time.time() # Obtener el tiempo inicial + + while pila: + # Sacar el último nodo de la pila + nodo_actual = pila.pop() + + # Si el nodo no ha sido visitado, procesarlo + if nodo_actual not in visitados: + visitados.add(nodo_actual) + print(nodo_actual) + + # Añadir los nodos adyacentes no visitados a la pila + for vecino in grafo[nodo_actual]: + if vecino not in visitados: + pila.append(vecino) + + end_time = time.time() # Obtener el tiempo final + print("Tiempo de ejecución:", end_time - start_time) # Imprimir el tiempo de ejecución + +# Ejemplo de uso +grafo = { + 'A': ['B', 'C'], + 'B': ['A', 'D', 'E'], + 'C': ['A', 'F'], + 'D': ['B'], + 'E': ['B', 'F'], + 'F': ['C', 'E'] +} + +print("Recorrido DFS:") +dfs_method(grafo, "A") + + +#!Algoritmo 2 BFS (Breadth First Search) +def bfs(graph, start, visited=None): + """ + Realiza una búsqueda por anchura en un grafo. + + Parámetros: + graph: Un diccionario que representa el grafo. + start: El nodo inicial a explorar. + visited: Un conjunto opcional para guardar los nodos ya visitados (predeterminado a `None`). + """ + if visited is None: + visited = set() + + # Cola para almacenar los nodos a explorar + queue = [start] + + start_time = time.time() # Obtener el tiempo inicial + + while queue: + # Sacar el primer nodo de la cola + node = queue.pop(0) + + # Si el nodo no ha sido visitado, procesarlo + if node not in visited: + visited.add(node) + print(node) + + # Añadir los nodos adyacentes a la cola + for neighbor in graph[node]: + if neighbor not in visited: + queue.append(neighbor) + + end_time = time.time() # Obtener el tiempo final + print("Tiempo de ejecución:", end_time - start_time) # Imprimir el tiempo de ejecución + +# Ejemplo de uso +graph = { + 'A': ['B', 'C'], + 'B': ['A', 'D', 'E'], + 'C': ['A', 'F'], + 'D': ['B'], + 'E': ['B', 'F'], + 'F': ['C', 'E'] +} + +print("Recorrido BFS:") +bfs(graph, 'A') \ No newline at end of file