Algoritmos BFS y DFS (Recorridos en Grafos)

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024
  • Si estás buscando trabajo remoto, puedes acceder a Arc desde éste enlace!! 👇🏻👇🏻👇🏻
    ►m.arc.dev/3njnlPd
    👾 Redes sociales 👾
    ► Twitter: / bettatech
    ► Instagram: / betta_tech
    ► Canal Secundario: / @forkdebettatech
    ► Slack: bit.ly/33gaDDM
    👨🏼‍🏫 MIS CURSOS 👨🏼‍🏫
    👽 Curso de iniciación a la programación con JavaScript:
    ► bit.ly/3kr4bTc
    👽 Curso de desarrollo backend con NodeJS y Express:
    ► bit.ly/3n4sirS
    👕 MERCHANDISING DEL CANAL:
    ► Tienda TH-cam: / bettatech
    ► Tienda Teespring: teespring.com/...
    ⭐️ AFILIADOS ⭐️
    🎁 7% Descuento en HOSTINGER (Código BETTATECH)
    ► www.hostg.xyz/...
    🧠 Autocompletado con IA (Kite)
    ► www.kite.com/g...
    🐾 MacPaw (CleanMyMacX):
    ► macpaw.audw.ne...
    📝 Todoist:
    ► doist.grsm.io/...
    🎵 TODA la música es de EpidemicSound:
    ► www.epidemicso...
    ✉️ CONTACTO PROFESIONAL:
    ► Respuesta no garantizada:
    bettatechyt@gmail.com
    📚 LIBROS 📚
    Design Patterns
    ► amzn.to/39XuQlq
    Head First Design Patterns
    ► amzn.to/2uq6XUq
    Refactoring
    ► amzn.to/2SQnf2c
    Clean Architecture
    ► amzn.to/3bZVonJ
    Clean Code
    ► amzn.to/32WVKq3
    Introduction to Algorithms
    ► amzn.to/34SyVFP
    Cracking the Coding Interview
    ► amzn.to/2QkdwC6

ความคิดเห็น • 56

  • @aaldiitoo
    @aaldiitoo 2 ปีที่แล้ว +29

    6:08 en la línea 15 debería ser w, no? Porque estábamos hablando de agregar específicamente ese nodo a la cola. Saludos desde la Facultad de Ingeniería en Mexico 🇲🇽

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +19

      Bien visto! Fijo comentario como aclaración :)

  • @AlexisVP97
    @AlexisVP97 2 ปีที่แล้ว +11

    Uf tío, acabo de ver un vídeo tuyo de 2019 y ahora veo este. Sinceramente has mejorado en todo sentido, y no digo que antes estuvieran mal tus vídeos y explicaciones, sino que ahora tienen una excelente calidad y además te desenvuelves perfecto.
    Admiro tu trabajo y por eso te mereces mis felicitaciones. Espero sigas compartiendo tan buen contenido.
    Te mando un saludo desde Uruguay!

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +1

      Muchisimas gracias por tu comentario!! Me animas mucho a continuar :D

  • @fabianavaliente4793
    @fabianavaliente4793 2 ปีที่แล้ว +2

    Me encantó el video, muchas gracias!!
    justamente mañana rindo estructura de datos y me ha servido bastante

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +1

      Muchisima suerte!!!

  • @manu-gt9gr
    @manu-gt9gr 2 ปีที่แล้ว +9

    que buen contenido, me interesa este tipo de contenido, y genial esa patineta eléctrica.

  • @moreniloco
    @moreniloco 2 ปีที่แล้ว +1

    Justo tengo parcial de estructura de datos este jueves, me sirve un monton, muchas gracias

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Mucha suerte!!!!!

    • @rastersoft
      @rastersoft 2 ปีที่แล้ว

      @@BettaTech Recuerdo que cuando estudiaba, decíamos antes del examen: "que dios reparta suerte y no justicia" :-D

  • @MatGODINEZROJASALEXISOMAR
    @MatGODINEZROJASALEXISOMAR 2 ปีที่แล้ว

    podrias hacer una lista de reproducción que vaya de lo basico a lo mas complejo?? a modo de curva de aprendizaje. Por cierto me gustan mucho tus videos, tambien sería bueno que hablaras de algunas diferenvias entre carreras, yo estudio Matematicas aplicadas y Computación en CDMX y hay varias cosas que dices que me recuerdan mucho algunas de mis asignaturas.

  • @sonnyakakitha2580
    @sonnyakakitha2580 2 ปีที่แล้ว +7

    Me dio curiosidad, sé que una DFS se puede hacer perfectamente de forma iterativa con una stack, pero siempre lo he hecho de forma recursiva, al menos para programación competitiva, y ahora que veo el código, se me hizo curioso, Genial :D

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +1

      Si! Puse el método iterativo para hacer tanto el BFS como el DFS iterativo, porque creo que mentalmente es más facil de entender :D

  • @juanmarcelomolina1165
    @juanmarcelomolina1165 2 ปีที่แล้ว +2

    Explica El algoritmo de dijkstra.muy buen canal bro

  • @Stephen_2330
    @Stephen_2330 2 ปีที่แล้ว

    Bienvenidos un día mas a BettaTech

  • @javierdelgado1630
    @javierdelgado1630 2 ปีที่แล้ว +1

    Muy bueno, me interesa mucho este contenido. Espero ver algun video del algoritmo de Djistrka. Saludos

  • @Losmejoresvideosdek
    @Losmejoresvideosdek 2 ปีที่แล้ว +1

    Broo me encantan tus videos. Me ayudaron a entender muchas cosas acerca del coste algoritmico. Unas de las cosas que más me sirvieron fue cuando isiste el código de memorization estaba de lujo. Me encantaría que isieras un ejemplo programando el DFS o el BFS. Sería genial 😉

  • @BANXIETY
    @BANXIETY 2 ปีที่แล้ว +1

    Justo hace unos días tuve un examen de esto:(

  • @emanuelhernandez5694
    @emanuelhernandez5694 ปีที่แล้ว

    [1:34] Recursividad administrada e implementada by itself.. XD

  • @juliandelcarlocarlomagno
    @juliandelcarlocarlomagno 2 ปีที่แล้ว

    SEGUI HACIEDNO VIDEOS DE GRAFOS Y DESARROLLLA MAS EL TEMA DE O GRANDE.

  • @berwick82
    @berwick82 2 ปีที่แล้ว

    Muy bueno. Gracias !!

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Gracias a ti por verme!!

  • @xlKlain
    @xlKlain 2 ปีที่แล้ว

    Hola! Muy bueno el video! El canal de Slack ya no existe? El link de la descripción me dice que ya no está activo :( Saludos!

  • @ricardoservian8878
    @ricardoservian8878 2 ปีที่แล้ว

    Te pareces a mucho Vsauce

  • @cristiansantander9778
    @cristiansantander9778 ปีที่แล้ว

    note que si arranco del nodo P. Sucede que el nodo Q no llega a ser visitato , tanto si recorro el grafo en BSF y DFS. Es probable que esto suceda o hay alguna manera de resolverlo?

  • @FarchopCode
    @FarchopCode 2 ปีที่แล้ว

    Entonces en un grafo no dirigido completo representado con listas de adyacencia, el orden de recorrer el grafo es de O(v^2), no?

  • @oriolgascon2157
    @oriolgascon2157 2 ปีที่แล้ว

    Me ha servido para un proyecto de clase así que 10/10 XD

  • @josemiguelochoa5372
    @josemiguelochoa5372 2 ปีที่แล้ว

    "Está lloviendo que te cagas 🤣"

  • @luisasanchez9267
    @luisasanchez9267 2 ปีที่แล้ว +1

    Buenísima explicación! me encanta tu canal

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Muchisimas gracias!!! 😀

  • @miguelgarciagonzalez
    @miguelgarciagonzalez 2 ปีที่แล้ว +1

    Los videos de algoritmos son super interesantes, más de esto :)

  • @psicodelico6
    @psicodelico6 2 ปีที่แล้ว

    1:50 Pusiste la versión iterativa. Mejor es poner la versión recursiva y luego pasar a la iterativa.

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Correcto! Puse la iterativa para no liar porque creo que la recursion es mas dificil de entender al inicio!

  • @hackeloff7800
    @hackeloff7800 2 ปีที่แล้ว

    En el minuto 8:16 que dices ignorar la linealidad no entendí la justificacion, no seria algo como, tenemos o(v+e) donde e = v^2 - v, luego al reemplazar => en o(v+e) = o(v+v^2-v) = o(v^2) ?

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +3

      O(V+V^2) = O(V^2) , no es una simplificación aritmética sino asintótica: Da igual el coste lineal si le sumas un coste cuadrático, el resultado es cuadrático.
      Básicamente me salté pasos y dije que E es O(V^2) directamente, y da la casualidad que los dos encajan (la simplificación aritmética con la asintótica).

  • @jeanlucalapadula3819
    @jeanlucalapadula3819 2 ปีที่แล้ว

    este video me está interesante .

  • @alejandrorangel9509
    @alejandrorangel9509 ปีที่แล้ว

    Gracias muy bueno

  • @cyrusin
    @cyrusin 2 ปีที่แล้ว

    Me encantan tus videos y justo tengo un desarrollo en el que tengo que inplementar dijkstra y tengo una pequeña duda a ver si puedes echarme un cable.
    La idea es calcular el recorrido mas corto entre varios destinos teniendo en cuenta que el punto de origen y de fin deben ser el mismo. Basicamente es para aplicarlo a transporte donde tengo un origen A, 3 destinos que tengo que visitar y finalmente volver al origen A, alguna recomendacion de como afrontar este reto? Mil gracias por adelantado

    • @pedroblanco1000
      @pedroblanco1000 2 ปีที่แล้ว

      Hola! Yo en este momento tuve que desarrollar el mismo problema. Que otras técnicas te enseñaron? Porque al tratarse de un ciclo hamiltoniano la única opcion es backtracking

    • @cyrusin
      @cyrusin 2 ปีที่แล้ว

      @@pedroblanco1000 no me han dado opciones, basicamente me han planteado el problema y tengo que buscar la solucion. Vi el tema de dijkstra pero me plantea la duda de pasar por todos los destinos y volver al origen, asi que si se te ocurre otra alternativa bienvenida sea

  • @luisantoniomarquezcastro5994
    @luisantoniomarquezcastro5994 2 ปีที่แล้ว

    Excelente vídeo,me gustó mucho!

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +1

      Muchas gracias!!

  • @pablohernandez4305
    @pablohernandez4305 2 ปีที่แล้ว

    Por favor mas de este contenido, me encanta este tipo de videos son de gran ayuda

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Un placer haber podido ayudar!

  • @OscarTorres-ls5ve
    @OscarTorres-ls5ve 2 ปีที่แล้ว

    Digamos que todo esto es relevante siempre y cuando se lo implemente en C o assembly, ya que las capas de software que añaden innecesariamente los lenguajes interpretados (estilo JavaScript, Java, Python, etc.) y de las que el desrrollador, habitualmente no sabe nada, hacen imposible tal optimización en la practica. Hacer este analisis para un interprete es como calcular al milímetro, medir con los dedos y cortar con un hacha.

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      De verdad crees que el coste sea cuadrático o lineal no afecta aunque el lenguaje sea interpretado? No estamos hablando de acelerar accesos a memoria o a realizar cálculos en hardware especializado. Que el factor constante de una tecnología sea mayor o menor no afecta a su coste asintótico. Lo cuadrático sigue siendo cuadrático y lo lineal lineal

    • @OscarTorres-ls5ve
      @OscarTorres-ls5ve 2 ปีที่แล้ว

      @@BettaTech No. Lo que digo es que para que calcular tan fino si despues vamos a usar un lenguaje interpretado que añade capas de software que distorsionan todos los calculos. Si vamos a hacer una búsqueda en la cual cada milisegundo cuenta, entonces los interpretes están descartados. Incluso, o quizás mas en entornos de microcontroladores, Lo digo porque en el presente parece que todo se hace en javascript, Python, PHP, Java etc y un cálculo tan fino no es para esos entornos.

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Insisto, esto no es un cálculo de milisegundos. El análisis no busca rascar milisegundos, de hecho da igual que tengas un coste de O(N+N^2) o de O(1+N^2).
      A ojos del análisis algoritmico, aunque en uno sea algo más rápido a la practica, el coste sigue siendo el mismo, O(N^2).
      Se busca analizar cómo de mal evoluciona el algoritmo cuanto más creces, eso es totalmente agnóstico al lenguaje o tecnología utilizada.
      Entiendo lo que dices, pero estamos diciendo que lo que realmente cambia es el factor constante del análisis (que el coste fijo sea mayor o menor) y eso si, afecta a O(1), pero no es un valor determinante si tienes costes lineales o de exponenciación más alta

    • @OscarTorres-ls5ve
      @OscarTorres-ls5ve 2 ปีที่แล้ว

      @@BettaTech Excelente. Ese es el punto importante: "Se busca analizar cómo de mal evoluciona el algoritmo cuanto más creces, eso es totalmente agnóstico al lenguaje o tecnología utilizada."

  • @StephJ768
    @StephJ768 10 หลายเดือนก่อน

    No entendí

  • @santiagosegura2897
    @santiagosegura2897 2 ปีที่แล้ว

    Excelente contenido!

  • @gerardgodet4599
    @gerardgodet4599 ปีที่แล้ว

    vaya castanya de explicacion

  • @jverac
    @jverac 10 หลายเดือนก่อน

    francamente pense que explicaria como funciona codigo, Su explicacion es muy gaseosa, sin sustancia