What Is a Binary Heap?

Поділитися
Вставка
  • Опубліковано 12 чер 2024
  • Binary heaps are very practical data structures used in a variety of algorithms - including graph searching algorithms, compression algorithms, and more. Here, we explore how binary heaps work: what they're used for, how to add new data into them, and how to remove data from them once we're done.
    0:00 Priority Queues
    1:31 Binary Heaps
    2:99 Insertion
    6:04 Deletion
    Note that the tree shapes presented in this video differ slightly from the traditional implementation of binary heaps, where the lowest level of the tree is filled with nodes from left to right. The implementation presented in this video is adapted from Stuart M. Shieber's "Programming Well: Abstraction and Design in Computation".
    ***
    Spanning Tree is an educational video series about computer science and mathematics. See more at spanningtree.me
    To be notified when a new video is released, sign up for the Spanning Tree mailing list at spanningtree.substack.com/
    Spanning Tree is created by Brian Yu. brianyu.me/
    Email me at brian@spanningtree.me to suggest a future topic.

КОМЕНТАРІ • 211

  • @MrAngryNeard
    @MrAngryNeard 3 роки тому +231

    I have learnd more in 8 min with you than 2 h in the university.

    • @playanakobi4407
      @playanakobi4407 3 роки тому +15

      agree. it's so different when they explained first why you're doing this than focusing on how to do it.

    • @superannoymous5731
      @superannoymous5731 3 роки тому +5

      True, GOD! it is frustrating when my lecturer would give us homework first before explaining which make the whole thing pointless.

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

      this

    • @jkrigelman
      @jkrigelman Рік тому +3

      Or is it because you already learned it for two hours and it's easier with a new visual explanation it makes sense now? 🤔
      I'm visual so it may be the video.😁

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

      Different styles make people learn more!

  • @BrianOSheaPlus
    @BrianOSheaPlus Рік тому +50

    This is a good explanation. It's also worth mentioning that the time complexity of this algorithm is log(n) for inserts and deletes. For example, when you add a new node, it will only have to be swapped at most log(n) times, where n is the total number of nodes in the tree.

    • @NachitenRemix
      @NachitenRemix Рік тому +2

      Yeah, log(n) is basically the depth (amount of rows) of the heap, so that makes sense.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Actually, his implementation of insertion is done in O(n) because he has to find the right leaf.

    • @alpharudiger1193
      @alpharudiger1193 10 годин тому

      @@dominiquefortin5345 isnt he finding it by having a counter in every node?

    • @dominiquefortin5345
      @dominiquefortin5345 7 годин тому +1

      @@alpharudiger1193 Maybe if the binary heap were just invented. But using counter in every node only make this more complex and time consuming. The idea is to always fill the three from left to right on the last level of the tree. This garanties that no node have more than 1 as a difference in heights between it's 2 child. You keep a pointer in the root to the parent where you can insert the new value if you use nodes and pointers, if you store everything in an array then you always insert at the end of the array. Of course after the insertion, the value needs to bobbles up to respect the invariant.

  • @nguyentrieta
    @nguyentrieta 3 роки тому +94

    At 4:25, I think the insertion is wrong. We always add it to the leftmost en.wikipedia.org/wiki/Binary_heap#Insert

    • @vorun
      @vorun 2 роки тому +5

      Agree! Insertion is wrong.

    • @znacloudznacloud8568
      @znacloudznacloud8568 Рік тому +2

      Agree

    • @georgiatanasow6658
      @georgiatanasow6658 Рік тому +4

      Maybe you missed that part, but he said that we want our binary heap to be perfectly balanced. In that case the insertion showed in the video is correct.

    • @Yazan_Majdalawi
      @Yazan_Majdalawi Рік тому +2

      @@georgiatanasow6658 Why though? is there a benefit for doing it that way, compared to the easy way of filling the level from left to right?

    • @amitdhaterwal8395
      @amitdhaterwal8395 Рік тому +1

      @@Yazan_Majdalawi we are trying for perfectly balance, suppose we have imbalance by factor 1 (suppose height(left)-1 === height(right)), now if we are inserting a new node, if we insert it to left again then the factor will still be 1, but if we insert to the right our factor will be zero and heap will be perfectly balanced
      The complete binary tree shape is also a valid but the balance factor can be 1 (which is allowed).

  • @cyril3248
    @cyril3248 Рік тому +48

    I'm more familiar with the implementation as a complete tree ("filling each level from left to right") as it's easier to implement in a vector which eploits the contiguity in memory. This more AVL styled implementation is still interesting I have to say

    • @rektdedrip
      @rektdedrip Рік тому +2

      This was my first time seeing an AVL type of implementation for a heap. I was always taught the complete tree structure as well

    • @angeldude101
      @angeldude101 3 місяці тому

      Somewhat amusingly, this has the same flaw that the video gave for just using an array, but the "flaw" in question is so minor that it's still usually more efficient than using pointers like in a traditional binary tree or linked list.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      @@rektdedrip There is no reason to do the AVL type thing. This is bad, it makes insertion O(n) instead of O(log n).

  • @krewfit
    @krewfit 2 роки тому +104

    To make a complete binary tree, you go from top to bottom, left to right ALWAYS.
    The insertion in this video is not correct... however, the information he presents is very helpful!

    • @pursadas
      @pursadas 2 роки тому +7

      and also during deletion, the right-most element is sent to the root, isn't it? to preserve the said property?

    • @anushreevirtualgaming226
      @anushreevirtualgaming226 2 роки тому +3

      @@pursadas yes, as far as i remember

    • @jellemiddendorf2572
      @jellemiddendorf2572 Рік тому +2

      thank you so much, i was learning and checked my results with some homework awnsers and got really confused because the homework only showed the end result not the steps inbetween, know i know it was the left to right thing

    • @kebman
      @kebman Рік тому +7

      He isn't making a binary tree, though, but a binary heap. Which looks a lot like a binary tree, but is faster - also because it allows for duplicates.

    • @broccolidiego2053
      @broccolidiego2053 Рік тому +7

      Binary tree and Binary heap are different. Both have different usage. A binary tree is for storing data while the binary heap is use primarily for a priority queue, either min or max.

  • @johnle7705
    @johnle7705 3 роки тому +2

    I love the presenter! Explain so well, so concisely!!!!

  • @kamoroso94
    @kamoroso94 Рік тому +1

    Great video! I was looking for a quick refresher to help me implement a priority queue to use in the A* algorithm.

  • @kritonios
    @kritonios 7 місяців тому +1

    Amazing video. The most detailed and "to the point" explanation of binary heaps I have seen. Many thanks. Keep it up!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not amazing.

  • @jamilhusssin3792
    @jamilhusssin3792 3 роки тому +10

    please make some more videos on different Algorithms like sorting Array algorithms, greedy algorithms, graphs implementations, etc.

  • @shandou5276
    @shandou5276 3 роки тому

    This is the best explanation I have seen about heap. Big thumbs up!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @gold4963
    @gold4963 3 роки тому +9

    Easily a 5 star video. You've earned a sub, my friend.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @wanwanan6322
    @wanwanan6322 2 місяці тому

    PERFECT video. Not boring and super informative. Covering all exceptions and key concepts. Thank u!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Not boring, tes, except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @AmanSingh-wk3iv
    @AmanSingh-wk3iv 2 роки тому +2

    amazed to see this video in just 8 minutes we need to give at least an hour to learn the same concept at other places .
    Also it is helpful to understand the concept with the real life example so that we also know the applications.
    please create more videos on data structure .
    Thanks!!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    Heck yeah I discovered you on CS50 w/David&Doug earlier this year and can't believe I haven't found this yet.! Thanks Brian for EVERYTHING you do homie ✌️

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @cristeycrouler1027
    @cristeycrouler1027 6 місяців тому

    your way of explaining and the sound of your voice and the type of things you talk about is all so great and makes me watch hours and not feel the time.
    Amazing videos man you deserve much more subscribers, hope you upload more♥️♥️♥️♥️♥️

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, not amazing.

  • @victorgoncalves8883
    @victorgoncalves8883 3 роки тому +2

    thank you for the help on the CS51 PSET Brian...very much appreciated

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

    • @kiopsy7591
      @kiopsy7591 Місяць тому

      @@dominiquefortin5345 whomp whomp

  • @vaibhavpoliwal2820
    @vaibhavpoliwal2820 3 роки тому +3

    Explained in very structured way.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @carlbutcher2268
    @carlbutcher2268 3 місяці тому

    I missed a lecture at university the other week and ended up doing a test without having any idea what a heap was or how it worked; Your video is clear and easy to understand, and I wish I'd looked sooner. Thank you.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @galiberkowiz594
    @galiberkowiz594 3 роки тому +12

    Thank you for the explanation.
    I was just studying about it during a computer science -Python course on CodeAcademy and they didn't explain what's the real-life usage for this data structure, which is a shame.
    If I'd like to go deeper and understand the process that led to the creation and planning of this data structure, where would you recommend me to read or watch?

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. But for understanding, code it and play with it. It is only 3 functions insert, delete, size.

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

    Hats off for the graphics. It was very much easy to understand

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    best explaination ever, wish i watched this before my algorithm exam

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, not good

  • @abdullahzia4633
    @abdullahzia4633 3 роки тому

    Bruh this was so much better explained than all of the videos with wayyyy more views on YT

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @shubhamnagure7654
    @shubhamnagure7654 3 роки тому

    Brian, Thanks for simplifying.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @kebman
    @kebman Рік тому +12

    I'd love a re-visit of this topic, with a comparison of a binary tree, including big O analysis.

    • @coffeedude
      @coffeedude 9 місяців тому

      A heap is a kind of binary tree

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +2

      @@coffeedude Heap is a binary tree.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +2

      Except the information in this video is just so slightly wrong, that people will not know it is bad. He made the insertion into a O(n) operation when it should be O(log n).

    • @coffeedude
      @coffeedude Місяць тому

      @@dominiquefortin5345 Yeah, it's a specific kind of binary tree. That's what I meant : )

    • @coffeedude
      @coffeedude Місяць тому +1

      @@dominiquefortin5345 Yeah, it's a specific kind binary tree. That's what I meant : )

  • @gdlevels3830
    @gdlevels3830 6 місяців тому

    thank you bro, now i understand more and expand my knowledge with this new type of data structure.
    (really helped in greedy algorithms btw)

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @omaryahia
    @omaryahia 7 місяців тому +1

    this is clear and concise, thank you 🌟

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    Really nice explanation, so thank you so much.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, not nice

  • @utkarshaggarwal1631
    @utkarshaggarwal1631 3 роки тому

    Amazing explanation. thanks

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, not amazing

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

    Amazing and clear explanation...

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, not amazing

  • @polarbeargc7491
    @polarbeargc7491 3 роки тому

    Great animation! Learned a lot.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Yeah but, the information in this video is just so slightly wrong, that people will not know it is bad.

  • @marwahmaher8574
    @marwahmaher8574 3 роки тому

    thank you, it was helpful

  • @maxsuelfernandes3016
    @maxsuelfernandes3016 3 роки тому

    Such an amazing video, thanks

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

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

    Amazing video. Thank you!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

  • @_Shubham....-----------------6
    @_Shubham....-----------------6 6 місяців тому

    The video teaches very much in a short time. Great 👌

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

  • @Leihua_Ye
    @Leihua_Ye 3 роки тому

    this is the best illustration of a binary heap.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    This actually helped me understand how Heap Sort works.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @utkarshsharma1185
    @utkarshsharma1185 Рік тому +1

    Thanks for the clear explanation

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +2

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

    • @utkarshsharma1185
      @utkarshsharma1185 Місяць тому +1

      @@dominiquefortin5345 yeah you are correct, thanks for pointing it out

  • @ArshdeepSingh-rh3zb
    @ArshdeepSingh-rh3zb 3 роки тому

    Great Explaination thanks

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not great

  • @avocode1487
    @avocode1487 Рік тому +1

    Please make video on radix Heap, as It is difficult to understand. Thanks for this awesome video 👍👍

  • @brian_kirk
    @brian_kirk 3 роки тому +1

    Excellent video, nice job. Is insertion left-child first or left-most-leaf first? Left-most-leaf would be consistent with array visualization of heaps?

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. Insertion should be donne at the end of the array, no left-child or right-child.

  • @benzeltser9851
    @benzeltser9851 3 роки тому

    THIS IS MORE THAN GREAT THIS IS INCREDIBLE

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not incredible.

  • @charbel4090
    @charbel4090 3 роки тому +6

    BRIAN GET SOME FREE TIME AND UPLOAD AGAIN WE NEED YOU HAHAHAHAHAH I LOVE U

  • @stith_pragya
    @stith_pragya 10 місяців тому

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

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not wonderful

  • @jibachhyadav7241
    @jibachhyadav7241 3 роки тому +1

    Please do cover more portion of ds and algo. Lots of Love. Thank You

    • @SpanningTree
      @SpanningTree  3 роки тому +2

      Feel free to suggest any data structures and algorithms you'd like to see covered!

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

    Recognized Brian Yu by voice. Great video, thank you very much, I am your fan

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

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

    Excellent explanation

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

      I t seems so. I just came in to explore number theory. 💕 the good teachers in different fields.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Excellent

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

    very helpful!

  • @aidynabirov7728
    @aidynabirov7728 3 роки тому

    Great explanation!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. No, not great.

    • @aidynabirov5932
      @aidynabirov5932 Місяць тому

      @@dominiquefortin5345then tell me the right one?

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

    Priceless lessons

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @rajdave7357
    @rajdave7357 3 роки тому

    My god, you are so amazing please make more videos, we need you

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @wallinslax
    @wallinslax 3 роки тому +9

    I think the insertion operation at 4:27 might be wrong, since the n th node's child node should be 2n and 2n+1.

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

      The insertion is definitely not what many and I have learned, but still the invariant that the n-th node's child node should be 2n and 2n+1 remains unchanged.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Yes, it is wrong.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      @@DanielVazquez No, he as made the insertion O(n) instead of being of being O(log n)

  • @derrylmartinez8010
    @derrylmartinez8010 3 роки тому +1

    thank you so much

  • @toolazy5899
    @toolazy5899 8 місяців тому

    thanks dude!

  • @stone_pilot
    @stone_pilot 3 роки тому

    I think it would have been more helpful if you were more specific when discussing time complexity, but I still found this video useful

  • @Aditya-on6ps
    @Aditya-on6ps 3 роки тому +1

    keep the good work sir

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. He has to correct it

  • @RV-kl2wl
    @RV-kl2wl Рік тому

    Just 1 mins and 40 sec into this video and already liked and subbed.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    Good explanation

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not good

  • @amotekundev
    @amotekundev 6 місяців тому

    Thank you

  • @mooyee1982
    @mooyee1982 3 роки тому

    讲得不错!!

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

    Thanks Brian!

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

    • @tarnum113
      @tarnum113 Місяць тому

      @@dominiquefortin5345 doesn’t matter. The man is a legend

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

    well explanation !

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

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

    Great vid, on an unrelated note, you sound just like the dude from CS50 course

  • @user-vm7xl6tr2l
    @user-vm7xl6tr2l 3 роки тому +1

    thanks

  • @King-bm3zh
    @King-bm3zh 10 днів тому

    4:42 Where do we add 9th node? Do we add under 5th node or we add under 6th node?

  • @anjaliasolkar8821
    @anjaliasolkar8821 3 роки тому +2

    Amazing💯

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad. So no, it is not Amazing

  • @Karan-ms5es
    @Karan-ms5es 3 роки тому +1

    Could you make a video on TRIE ?

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

    nice video :D
    at first I thought this is just a binary tree

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      It is a binary tree, it is a balanced binary tree. It is not a binary search tree.

    • @VirtuelleWeltenMitKhan
      @VirtuelleWeltenMitKhan Місяць тому

      @@dominiquefortin5345 at first I thought this is just a binary tree

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

    how would you code something like this?

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

    It would be cool to show how that would work in python or some other language

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

    You made this fucking easy, thank god.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Except the information in this video is just so slightly wrong, that people will not know it is bad.

  • @user-vm7xl6tr2l
    @user-vm7xl6tr2l 3 роки тому +2

    keep more in algorithm

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

    would have been nice to show how this is better then a linked list.

  • @neuplop
    @neuplop Рік тому +1

    But if you want to search for one specific in the bottom of the list you don't know where it is.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Yes exactly, which make insertion O(n) instead of O(log n) as it should be.

  • @AnasKhan-pb8tn
    @AnasKhan-pb8tn 2 роки тому +4

    Binary heap should be a complete binary tree , that means left to right. The insertion is wrong.

  • @enishalilaj9309
    @enishalilaj9309 2 роки тому +3

    The explanation is quite good, but there are some small mistakes such as insertation and when you said the child cannot be smaller than the parent in Binary Heaps, that all depends if the Binary Heap is Min or Max, so that rule only exists when we define the Binary Heap!! Great vid!

    • @s0ulweaver
      @s0ulweaver Рік тому +2

      He did say that we will be talking about min-heap for this explanation

  • @aarMess
    @aarMess 3 роки тому

    Good work! Btw. consider investing in a microphone, its worth it...

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

    So basically a Huffman tree. Which of course could be implemented as an array (albeit, at the expense of performance).

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      No, not a Huffman tree, a balanced binary tree. "... at the expense of performance ..." I don't think you know what you are talking about. You are comparing apples to oranges.

    • @FranzBiscuit
      @FranzBiscuit Місяць тому

      @@dominiquefortin5345 Yeah I honestly don't know what I was thinking there. I may have answered that one before I had my coffee! Cheers....

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

    What is the complexity of searching an element?

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      You can't directly search a heap. You have to transform it O(n) into a sorted list and then search that O(log n).

  • @Matthew54861
    @Matthew54861 3 роки тому

    Just a heads up, your timestamp for Insertion is not valid!

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

    this will be thanos favorite data structure..

  • @alejandrojara7303
    @alejandrojara7303 Місяць тому

    Brian is that you? I'd recognise that voice from a mile away

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

    damn thats Brian from CS50

  • @dominiquefortin5345
    @dominiquefortin5345 Місяць тому +1

    Insertion is wrong. When inserting, it is always done at the end of the array then the value bobbles up to keep the invariant.

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

    When we move up the number 11 to the root of the heap, we just need to see which root's children is smaller and repeat downwards. If none is smaller, the we are done! Note: We already know that 11 was brought from the bottom of the heap, so it must be either greater or equal to the two root's children.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      "... must be either greater or equal to the two root's children ..." False, you only know that it is greater or equal to the left root's child because the 11 was on that sub tree. All the values on the right subtree can be greater than 11.

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

    i was about to say i recognise the voice, cs50ai

  • @mossthebryophyter
    @mossthebryophyter 3 роки тому

    Why is it that videos on UA-cam explain stuff better while I'm paying a ridiculous amount of money just to attend a school?

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      Because, you can be sure that there are no errors like in this video. His method for filling the last level of the tree is wrong.

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

    the insertion is wrong

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

    6:44 why take a low priority element? you could just skip this step and swap the smallest children with null instead

    • @vr77323
      @vr77323 Рік тому +1

      Could you elaborate on that? I don't think I understand what you mean by setting smallest children to null

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

      @@vr77323 In the graph at 6:44 the root element is null.
      So we could just swap it with the smallest of its children and repeat, making the first step (setting 11 to be the new root) obsolete.
      In the animation it would look like the value null is propagating downwards, kinda like air bubbles in water (but upside down) or the gap between cars in a traffic jam.

    • @dominiquefortin5345
      @dominiquefortin5345 Місяць тому +1

      @@powerdust015lastname4 What you propose is equivalent if after that you move the 11 in the hole and you move the 11 toward the root until the parent is smaller.

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

    I'm a middle child. Always left out and forgotten.

  • @icewreck
    @icewreck 3 роки тому +1

    Brain from CS50 ?

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

    This method of organisation should be taught in schools.

  • @dominiquefortin5345
    @dominiquefortin5345 Місяць тому +1

    @Spanning Tree This is misinformation. You have to redo this video. How do you choose the position of the insertion in O(1)? The only way, I see with the objective of keeping the tree totally balanced, of choosing the position is by looking at all the leafs which would make the insertion O(n). That is stupid. Insertion has to be done in O(log n).

  • @dipakpardeshi6618
    @dipakpardeshi6618 4 місяці тому +2

    at 4:30 in video, you have shown wrong complete binary tree, stop teaching wrong concepts.

  • @securethebag1613
    @securethebag1613 3 місяці тому +1

    this is overkill

  • @nishantsethi6625
    @nishantsethi6625 День тому

    ua-cam.com/users/shortsV8QD98eONCw?si=oPkUsUPHVdfzDKaG
    This is way too helpful

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

    Ooops, headache

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

    This is a terrible shape for a tree. Works for a linked data structure, but linked data structures are mostly terrible, so why would you do that?

  • @michaelkohlhaas4427
    @michaelkohlhaas4427 8 місяців тому +3

    Nice video. But unfortunately wrong!

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

    Why the pointless background "music" in an otherwise interesting video. Very distracting for some (like me...)

  • @nishantsethi6625
    @nishantsethi6625 День тому

    Fake comments. Nt at all helpful