Algoritmos BFS y DFS (Recorridos en Grafos)

Поділитися
Вставка
  • Опубліковано 28 лис 2021
  • 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 UA-cam: / bettatech
    ► Tienda Teespring: teespring.com/stores/bettatec...
    ⭐️ AFILIADOS ⭐️
    🎁 7% Descuento en HOSTINGER (Código BETTATECH)
    ► www.hostg.xyz/aff_c?offer_id=...
    🧠 Autocompletado con IA (Kite)
    ► www.kite.com/get-kite/?...
    🐾 MacPaw (CleanMyMacX):
    ► macpaw.audw.net/c/2523912/941...
    📝 Todoist:
    ► doist.grsm.io/martincristobal...
    🎵 TODA la música es de EpidemicSound:
    ► www.epidemicsound.com/referra...
    ✉️ 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 роки тому +28

    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 роки тому +17

      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

  • @manu-gt9gr
    @manu-gt9gr 2 роки тому +8

    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 😉

  • @javierdelgado1630
    @javierdelgado1630 2 роки тому +1

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

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

  • @fabianavaliente4793
    @fabianavaliente4793 2 роки тому +2

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

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

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

  • @alejandrorangel9509
    @alejandrorangel9509 Рік тому

    Gracias muy bueno

  • @miguelgarciagonzalez
    @miguelgarciagonzalez 2 роки тому

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

  • @luisasanchez9267
    @luisasanchez9267 2 роки тому +1

    Buenísima explicación! me encanta tu canal

    • @BettaTech
      @BettaTech  2 роки тому

      Muchisimas gracias!!! 😀

  • @luisantoniomarquezcastro5994
    @luisantoniomarquezcastro5994 2 роки тому

    Excelente vídeo,me gustó mucho!

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

  • @Stephen_2330
    @Stephen_2330 2 роки тому

    Bienvenidos un día mas a BettaTech

  • @berwick82
    @berwick82 2 роки тому

    Muy bueno. Gracias !!

    • @BettaTech
      @BettaTech  2 роки тому

      Gracias a ti por verme!!

  • @santiagosegura2897
    @santiagosegura2897 2 роки тому

    Excelente contenido!

  • @oriolgascon2157
    @oriolgascon2157 2 роки тому

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

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

  • @juanmarcelomolina1165
    @juanmarcelomolina1165 2 роки тому +2

    Explica El algoritmo de dijkstra.muy buen canal bro

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

  • @emanuelhernandez5694
    @emanuelhernandez5694 Рік тому

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

  • @jeanlucalapadula3819
    @jeanlucalapadula3819 2 роки тому

    este video me está interesante .

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

  • @BANXIETY
    @BANXIETY 2 роки тому +1

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

  • @josemiguelochoa5372
    @josemiguelochoa5372 2 роки тому

    "Está lloviendo que te cagas 🤣"

  • @ricardoservian8878
    @ricardoservian8878 2 роки тому

    Te pareces a mucho Vsauce

  • @juliandelcarlocarlomagno
    @juliandelcarlocarlomagno 2 роки тому

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

  • @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 роки тому +2

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

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

  • @C_Lyrics
    @C_Lyrics 7 місяців тому

    No entendí

  • @gerardgodet4599
    @gerardgodet4599 Рік тому

    vaya castanya de explicacion

  • @jverac
    @jverac 7 місяців тому

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