Algoritmos BFS y DFS (Recorridos en Grafos)

Поделиться
HTML-код
  • Опубликовано: 16 окт 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 RUclips: / 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 года назад +30

    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 года назад +20

      Bien visto! Fijo comentario como aclaración :)

  • @AlexisVP97
    @AlexisVP97 2 года назад +12

    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 года назад +2

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

  • @manu-gt9gr
    @manu-gt9gr 2 года назад +9

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

  • @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 😉

  • @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!!!

  • @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

  • @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

  • @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!

  • @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.

  • @javierdelgado1630
    @javierdelgado1630 2 года назад +1

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

  • @miguelgarciagonzalez
    @miguelgarciagonzalez 2 года назад +1

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

  • @Stephen_2330
    @Stephen_2330 2 года назад

    Bienvenidos un día mas a BettaTech

  • @luisasanchez9267
    @luisasanchez9267 2 года назад +1

    Buenísima explicación! me encanta tu canal

    • @BettaTech
      @BettaTech  2 года назад

      Muchisimas gracias!!! 😀

  • @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!

  • @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?

  • @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?

  • @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!

  • @juanmarcelomolina1165
    @juanmarcelomolina1165 2 года назад +2

    Explica El algoritmo de dijkstra.muy buen canal bro

  • @oriolgascon2157
    @oriolgascon2157 2 года назад

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

  • @emanuelhernandez5694
    @emanuelhernandez5694 Год назад

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

  • @alejandrorangel9509
    @alejandrorangel9509 Год назад

    Gracias muy bueno

  • @berwick82
    @berwick82 2 года назад

    Muy bueno. Gracias !!

    • @BettaTech
      @BettaTech  2 года назад

      Gracias a ti por verme!!

  • @santiagosegura2897
    @santiagosegura2897 2 года назад

    Excelente contenido!

  • @josemiguelochoa5372
    @josemiguelochoa5372 2 года назад

    "Está lloviendo que te cagas 🤣"

  • @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).

  • @BANXIETY
    @BANXIETY 2 года назад +1

    Justo hace unos días tuve un examen 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!

  • @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."

  • @jeanlucalapadula3819
    @jeanlucalapadula3819 2 года назад

    este video me está interesante .

  • @ricardoservian8878
    @ricardoservian8878 2 года назад

    Te pareces a mucho Vsauce

  • @juliandelcarlocarlomagno
    @juliandelcarlocarlomagno 2 года назад

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

  • @StephJ768
    @StephJ768 11 месяцев назад

    No entendí

  • @gerardgodet4599
    @gerardgodet4599 Год назад

    vaya castanya de explicacion

  • @jverac
    @jverac 10 месяцев назад

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