Graph Search Algorithms in 100 Seconds - And Beyond with JS

Поделиться
HTML-код
  • Опубликовано: 16 окт 2024
  • Prepare for a technical interview by learning about the graph data structure and basic traversal algorithms like depth-first search (DFS) and breadth-first search (BFS). fireship.io/co...
    #compsci #JavaScript #100SecondsOfCode
    Install the quiz app 🤓
    iOS itunes.apple.c...
    Android play.google.co...
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
    My VS Code Theme
    Atom One Dark
    vscode-icons
    Fira Code Font

Комментарии • 501

  • @Fireship
    @Fireship  4 года назад +931

    Do you want to see more videos with a technical "interview prep" focus? Usually I cover practical projects, so curious to know what you think...

    • @sadn1ck
      @sadn1ck 4 года назад +39

      YES please! Much love!

    • @nicolasferrero9928
      @nicolasferrero9928 4 года назад +6

      I like this videos more than others

    • @PrakashVl
      @PrakashVl 4 года назад +4

      Yes interview preparation, this one is awesome

    • @abhinav.sharma
      @abhinav.sharma 4 года назад +8

      YEEEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

    • @sagnikpradhan3594
      @sagnikpradhan3594 4 года назад +3

      Yes!

  • @sagnikpradhan3594
    @sagnikpradhan3594 4 года назад +407

    I would love more algorithms, data structures, and ML too!

  • @nils42
    @nils42 4 года назад +151

    Thanks, with my 6 years+ experience as a Frontend-dev, I now feel like a junior-dev again 😅

    • @shygrammer
      @shygrammer 4 месяца назад

      you just said it!

  • @ihavetwofaces
    @ihavetwofaces 4 года назад +51

    +1 for the "x in 100 seconds... but wait there's more!" format. Getting a brief overview of the concepts followed immediately by a more in-depth implementation of those concepts is a fantastic way to structure the video.

  • @meco
    @meco 4 года назад +195

    I would’ve needed this for my computer science class 😫😫 Once again your content is the high quality learning we all needed

    • @athulp6591
      @athulp6591 4 года назад +3

      In my case , it is right on time.

    • @miteshkumar3183
      @miteshkumar3183 4 года назад +3

      This is a basic topic in a first semester computer science class.

  • @anirudhtv
    @anirudhtv 4 года назад +196

    IF CS WAS A MOVIE THEN
    THIS MAN YOU WOULD BE THE AUTHOR

    • @YoloMonstaaa
      @YoloMonstaaa 4 года назад +4

      Movies have script writers and directors as key creative roles. No authors.

    • @calvinebun-amu5397
      @calvinebun-amu5397 4 года назад

      100%

    • @Fireship
      @Fireship  4 года назад +32

      I'm writing a screenplay titled "CS - The Movie" ;)

    • @raymondmichael4987
      @raymondmichael4987 4 года назад +1

      Fireship, I'll definitely watch it.
      Greetings from Tanzania 🇹🇿

    • @abelkidanemariam6485
      @abelkidanemariam6485 4 года назад +1

      another Ali gate fan here

  • @Pogibakayo
    @Pogibakayo 4 года назад +67

    So glad. While these X in 100 seconds videos are great for some topics, this definitely needed a longer one.

    • @Fireship
      @Fireship  4 года назад +24

      Thanks! Yeah, trying to decide if I should make them as completely separate vidoes

    • @Pogibakayo
      @Pogibakayo 4 года назад +6

      Fireship I’d certainly love that! But honestly, anything you put out is gold. You’re on fire.

    • @Ajay-ku6oq
      @Ajay-ku6oq 4 года назад +1

      @@Fireship Maybe release them simultaneously so that people who want can watch both and there is a higher chance of one going viral.

    • @Sunwarul
      @Sunwarul 4 года назад +3

      @@Fireship Please make this type of video with a slow pace. Your teaching style is good. but just take longer and bit slower-paced videos. Give some time to grasp the concept along. However, like these videos. Thanks!

    • @LineageFalcon
      @LineageFalcon 4 года назад

      Fireship Yeah, I think u definitively should do that. Some of your viewers want more in-depth information and with a bit more time to consume it. So I think it is a good Idea to do a 100 secs version and a in-depth version. Anyways I really appreciate your work and passion. Thank your for your vids. Have a nice day. :D

  • @simplyweird6369
    @simplyweird6369 4 года назад +46

    Definitely want Algorithms, Design Patterns and Data Structures 🙏

  • @099watcher
    @099watcher 4 года назад +44

    That was sweet!
    Please create a playlist of data structures and algorithms.
    Great content, keep it up 👍🏻.
    🔥🔥🔥

  • @aykborstelmann8623
    @aykborstelmann8623 4 года назад +17

    I really appreciate this format especially the combination of 100 seconds & beyond 100 seconds

  • @dnk1312
    @dnk1312 4 года назад +7

    Every time the outro music fades in, I can literally feel that 'i get it now' rush ! Thanks a lot and keep up the outstanding work !!

  • @sathishshaj7815
    @sathishshaj7815 4 года назад +72

    This video is more than worth of my three year CS degree 🔥

  • @daheck81
    @daheck81 4 года назад +11

    100 seconds of different time complexities as in the Big-O-Notation would be awesome. I tend to forget how they work when I haven’t dealt with them in a while (same with Regex) so I think a 100 second reminder would be perfect!

  • @AdrenalineAkash13
    @AdrenalineAkash13 4 года назад +1

    Greatest explanations i've ever seen on RUclips hats off @fireship

  • @TheGitGuild
    @TheGitGuild 4 года назад +52

    This is really nice. Also try making the speed 2x and watch it like 3 times if you want to overclock your brain. But it could cost you a few more seconds tho :/

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

    In 10 Min, I came out with a better understanding of graphs then I have in the previous attempts (which was a lot). Thanks for making graphs make sense.

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

    The format of these videos is brilliant! 100 seconds intro and then, if you want it, some practical implementation.

  • @Loopmootin
    @Loopmootin 4 года назад +2

    3:25 "go slowly and explain every step!" while going on for 10½ minutes like an absolute rap god xD Had to watch the video back to back twice and still only got half of it, but loved all of it ^^

  • @darshangowda309
    @darshangowda309 4 года назад +8

    Wow! This is awesome 🙌 would love to see more of this!

  • @nulI_dev
    @nulI_dev 4 года назад +1

    this makes so much more sense than any CS video i've ever watched

  • @TheNewton
    @TheNewton 4 года назад +25

    5:32 Javascript destructuring in 100 seconds

    • @eshaan7_
      @eshaan7_ 4 года назад +10

      more like JavaScript de-structuring in 100 milliseconds.

  • @Brunoenribeiro
    @Brunoenribeiro 3 года назад

    fireship does youtube like no other channel
    the "basics in 100s + deep dive" format is a blast, man

  • @mrviometal4948
    @mrviometal4948 4 года назад

    Make all 100 seconds videos like this, a 100 seconds explaining everything simply, then go into details...this is awesome

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

    Very clear instructions. I only know Python and I completely understood your coding process with Javascript.

  • @hendrickmanenga9213
    @hendrickmanenga9213 Год назад +1

    Some people were really born to teach.Congrats

  • @davidvideauortega287
    @davidvideauortega287 4 года назад +1

    Hellllll I loved this video. THANK YOU!!! This channel is seriously awesome. One of the best coding channels in the entire internet. ❤

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

    Bro! The way you explained this and the neatness of your codes I could grasp the Graph theory quickly. Please make a series.

  • @lucasoliveira-xs5yh
    @lucasoliveira-xs5yh Год назад +1

    Your channel is sooooooo awesome, congratulations! One question that I have: Is the set used at the DFS function a memoization technique?

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

    I had to figure all this stuff out on my own when trying to implement A* pathfinding in a game I made. The tutorial I followed used an adjacency matrix. But my game maps were 1000 x 1000. The whole thing crashed when it tried to build the matrix. So I manually went through and converted the graph to a list structure, so only nodes with edges were stored.
    I guess I could have saved the whole thing to the hard disc instead of keeping the whole graph in memory at run-time, but I learned a lot fixing that problem.

  • @AiguretDuren
    @AiguretDuren 3 года назад

    I really enjoyed working with these data structures and algorithms in JavaScript. I would love to see more of this!

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

    Thank you!This taught me more in a few mins than my professor in hours!

  • @rebelmachine88
    @rebelmachine88 4 года назад +1

    I love this! Very clear explanation. I would love a mix of project videos and interview ones like this.

  • @k3tna
    @k3tna 4 года назад

    You've made this one understandable enough for a person who hasn't yet got to this part of programming. Solid introduction to the topic. Didn't get everything, but the idea is very clear. Cheers!

  • @rynkydynky
    @rynkydynky 4 года назад

    Finally somebody explaining Algortithms with Javascript Sets and Maps! Thank you.

  • @RTshots
    @RTshots 4 года назад +1

    I didn't know I needed a fireship video about cs theory until I watched one. Plz do more

  • @gautamgadipudi8213
    @gautamgadipudi8213 4 года назад

    I can't believe I'm watching this in my leisure time. This is quality content! Keep them coming. Would love to see more algorithms explained like this. Thanks buddy, you're a rockstar! :)

  • @Zeda_
    @Zeda_ 4 года назад

    This video is awesome! I love seeing these 100 second videos pop up in my feed, they’re always fantastic. One note though: an adjacency matrix does have very bad space complexity, but part of the reason for that is that it’s making the trade-off for time. It actually is quite time efficient to check specific connections [O(1)], so it just depends on what your program is prioritizing or needs.

  • @teddified3845
    @teddified3845 4 года назад

    This hooked me like crazy. Please do more data science and algorithm videos like this. Loved it!

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

    wow so fantastic, so fast and all necessary details/CRITICAL details are covered with real time application.
    This really makes me so excited to dig deeper into the topic.
    Keep posting more informative videos like this.
    And could be also attach code in the video description in popular 3 languages like python, Java, c++ along with javascript

  • @leaxem
    @leaxem 4 года назад

    This is great. Best implementation of DFS / BFS I have seen in a while. Thanks.

  • @thebotlist
    @thebotlist 3 года назад

    Thanks for taking the time to make this great video! I'm doing interview prep, like many others. There was a problem I ran into while recreating breadth first search graph traversal: the enqueue in the 'bfs' method was happening regardless if the destination was in the visited Set so I ran into an endless loop scenario. I removed that and just kept the enqueue in the 'if not visited' statement and I get the correct answer. Please forgive if I just missed some of the code in the tutorial and thanks again for the great video/succinct example!

  • @tambolaking5383
    @tambolaking5383 4 года назад

    Loved this. 100 seconds to grab attention and beyond for serious developers

  • @bahgatmashaly4196
    @bahgatmashaly4196 4 года назад

    I needed this for my computer science class , your content is the high quality learning we all needed

  • @planetmall2
    @planetmall2 4 года назад

    Awesome job! Thank you. 100 seconds is great no complaints but beyond is next level!

  • @Takuroni
    @Takuroni 4 года назад

    It's crazy how much I learn from your videos in such a short time. Thanks you are the best.

  • @marshallmurray8050
    @marshallmurray8050 4 года назад

    Yes, I would definitely like more videos with technical interview prep focus. I'm probably a ways off of an actual interview, but it's nice to mentally prepare proactively because I'm such a good procrastinator!

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

    this actually just helped me in a FANG interview, great stuff!

  • @akam9919
    @akam9919 6 месяцев назад +1

    Got an interview in 5 min. Thx!

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

    Amazing video!! Practical problems are ALWAYS better than abstract ones.

  • @PraveenKumar-ft2kr
    @PraveenKumar-ft2kr 2 года назад +1

    Amazing one.. WE need more of these :) Bring it on brother ✌

  • @AleksandarT10
    @AleksandarT10 4 года назад +1

    Would be great to do more of these technical "intervew prep" videos. Awesome explanation! Sums up half semester of Algorithms course :D

  • @realconect
    @realconect 4 года назад +1

    Amazing, as usual. It’d be awesome if you created a full course on algos. Thanks! 😃

  • @andylib
    @andylib 4 года назад +1

    This was amazing! Great speed, great length, great everything!

  • @Heisenberg-xc8ub
    @Heisenberg-xc8ub 4 года назад

    If only I knew that Javascript was this complex before I would have paid more attention to it. I'm a backend developer and thanks to your videos I have been slowly getting better and more interested in Javascript. Awesome work as always keep up these explosive contents!

  • @joaomelo6642
    @joaomelo6642 4 года назад

    i love your channel for a long time. content and form are premium. i confess i was not so engaged with 100 secs videos. seemed hushed. this approach with 100 secs as intro to something more in depth following is perfect to me. thanks for such great work.

  • @emsourcemedia9178
    @emsourcemedia9178 4 года назад

    This is by far the best explanation of node.

  • @ikezedev
    @ikezedev 4 года назад

    It is so nice knowing that you decided to use recursion instead of stack in DFS to show to show it can be down either way. Thanks a lot Jeff 😍

  • @nebraska7891
    @nebraska7891 4 года назад

    This was incredible! Finally a real world example where you show the power of recursion 🙌

  • @arjunyonzan8557
    @arjunyonzan8557 Год назад +1

    thank you, will be practising a lot

  • @Endede
    @Endede 4 года назад +1

    For your BFS implementation, I think worst case time complexity ends up as O(E + V^2), because the shift() method is (probably) O(N) for N == length of the array. To achieve O(E +V) A "real" queue implementation is needed, that implements enqueue()/dequeue() in constant time.

  • @Blixzful
    @Blixzful 4 года назад +1

    Been enjoying your content for years, Jeff. Wish I had you when I studied CS :) Suggestion: Sort algorithms for DBs and why they're useful in different scenarios.

  • @youssefmuhamad3213
    @youssefmuhamad3213 4 года назад +3

    That was awesome, keep it up with more advanced stuff

  • @woodylucas
    @woodylucas 3 года назад

    When I say I was stressing! This just saved my life thank you.

  • @MarsTheProgrammer
    @MarsTheProgrammer 4 года назад +1

    For anyone that didn't see how you get the steps at 9:49 it's `DFS found Bangkok ${visited.size} in steps`. Use the visited size.

  • @johnnyx6654
    @johnnyx6654 4 года назад +1

    Not gonna lie, have an interview coming up and this was amazing, thanks so much for sharing the knowledge

  • @popori7928
    @popori7928 4 года назад

    One thing worth knowing about DFS is that while it's most commonly implemented with recursion, you can actually implement it the exact same way as BFS as shown in the video except by replacing the queue with a stack instead. After understanding it, I thought it was a bit more intuitive and easier to remember (since two birds with one stone).
    This is also good to know in case an interviewer asks about the potential for stack overflow.

  • @kritikkaushal6305
    @kritikkaushal6305 4 года назад

    straight up one of the best channels on yt

  • @shubhsheth
    @shubhsheth 4 года назад +1

    Great timing, would definately love more videos like this!

  • @mangeshgupta5677
    @mangeshgupta5677 4 года назад

    Thanks man , I used to fear from this topics , you made so easy that any non tech guy can understand completely . God bless you 🙏

  • @suryasarkar9681
    @suryasarkar9681 4 года назад +4

    More on graphs please. This was one of the best explanations of graph traversal on the internet ❤

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

    Fatastic .... 1 minute .... my full page is covered with expensive knowledge ..... How good you are ❤. It make me think of how much knowledge creator fed in you..... brilliant

  • @VigneshDhakshinamoorthy
    @VigneshDhakshinamoorthy 3 года назад

    Is it fair to say @1:25 accurately describes all of us right now?
    Great video by the way, cheers! Keep it coming. DONT STOP! PLS!

  • @samueljanda3903
    @samueljanda3903 4 года назад

    OMG, this video actually solved the programming problem that I am having today! Just my luck, thank you so much.

  • @Sagar_RS
    @Sagar_RS 4 года назад +1

    This is awesome, please keep it going 👍 , need more of these .

  • @Zhuclam
    @Zhuclam 4 года назад

    This reminds me of one of the first excersices of the book "eloquent JavaScript", it was awesome!

  • @sidheshwartiwari9834
    @sidheshwartiwari9834 4 года назад +1

    This is so interesting to learn about... Lately all I have been doing is writing layout with flex and adding event listeners .. and boii , I hate doing that..

  • @DeAndreJohnson212
    @DeAndreJohnson212 4 года назад

    Yes, definitely want more data structures and algorithms videos like this! Thanks for these videos, I wish I would’ve had you as my CS Instructor 😂

  • @ttul007
    @ttul007 4 года назад

    great video! quick and efficient refresher for stuff i touched 10+ years ago when i did my bachelor's. thanks :)

  • @Sunwarul
    @Sunwarul 4 года назад

    Thank you so much. Please make more and more videos on Data Structures and Algorithms. Thank you once again!

  • @Melvin420x12
    @Melvin420x12 4 года назад +2

    This is awesome. Thank you. I love the “beyond the 100 seconds”. Never heard of the Map or Set object. These kind if things make me so excited.
    Do you make these videos on your own or is there a team behind Fireship?

    • @tartarus1322
      @tartarus1322 4 года назад +2

      Maps are some of the most beautiful data structures that you’ll ever see. A Map is a hashed data structure, which is some of the most useful shit you’ll ever use. A HashSet (not implemented in JS) is incredibly useful. They’re so useful because of their ability to retrieve a value in O(1) by value. This can find if an element exists in (ideally) O(1) rather than logn which is a binary search.

    • @Melvin420x12
      @Melvin420x12 4 года назад

      Tartarus13 Sounds interesting! Do you have a source where we can learn more about this?

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

      @@tartarus1322 well, that is until you start getting hash collisions, that's when maps start rearing their ugly head

  • @de-codr8814
    @de-codr8814 3 года назад

    Make more such videos like using some development related use cases where this algorithms can implemented , everyone will love them as the you breakdown the problem into subproblem is awesome.👍👍👍👍😁

  • @shauryaverma8780
    @shauryaverma8780 4 года назад

    Please provide us with more algorithm, data structure videos which also focus on the interview perspectives, like this video did. Love your efforts man!!! Thanks

  • @wertexify
    @wertexify 4 года назад

    +1 for more algo/ds in JavaScrip! Amazing content.

  • @kevintyj
    @kevintyj 3 года назад

    This made more sense than the semester of data structures

  • @PureAlbania
    @PureAlbania 4 года назад

    Wow, respect for using kms.
    You are on a different level. Should be paid by the firebase team for doing so much better videos than they do.

  • @samario_torres
    @samario_torres 4 года назад

    That was great. I would like to see more of these. And also the thought process that takes place when you should use a Map..how to effectively use maps

  • @jannotabamo4002
    @jannotabamo4002 4 года назад

    Thank you so much for sharing very high quality contents!! More CS topics pleaseee :)

  • @PsHarneja
    @PsHarneja 3 года назад +1

    Every other channel: Increase the video speed to 1.25.
    This channel: Decrease the speed to 0.75

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

    Thank You So Much for this wonderful video...🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

  • @s.hariharan6958
    @s.hariharan6958 5 месяцев назад +1

    you are Saviour of cs students 🙇‍♂🙇‍♂...

  • @SogMosee
    @SogMosee 4 года назад

    This video was a majestic thing of beauty.

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

    0:26 The notation you used actually indicates it is a bi-directional graph, meaning directions in both ways. An undirected graph would have no arrowheads (since arrows indicate direction), but simply a line.

  • @MontezSmith
    @MontezSmith 4 года назад

    @Fireship This video was awesome! Please add more JS algorithm content like this!

  • @Andrew-ht7rf
    @Andrew-ht7rf 4 года назад

    This channel and codestackr are my bibles to CS 2020

  • @tygobolink5743
    @tygobolink5743 4 года назад

    It feels so bad that you upload this video right now. It's a great video and in explains the problems clear. But for a school assignment I had to Depth First Search a specific list of nodes and links. I did need a couple of hours to figure out how to this works. I nailed it but not as clean as you explained the problem and the solution. Thanks for the great video's you make!

  • @Aaronmoreno
    @Aaronmoreno 4 года назад

    one of my favorite videos so far!

  • @melvins126
    @melvins126 4 года назад

    This content is GOLD. Tyvm

  • @bmejia220
    @bmejia220 3 года назад

    Wow brilliant tutorial man brilliant lesson thanks so much learning so much here

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

    dam this is so much more helpful than the leetcode graph card, thank you so much!

  • @JudoboyAlex
    @JudoboyAlex 4 года назад

    Most algorithms and data structure courses are either in java or python. Rarely see one in javascript. We need more video like this for JS community.