Data Structures: Heaps

Sdílet
Vložit
  • čas přidán 26. 09. 2016
  • Learn about heaps. This video is a part of HackerRank's Cracking The Coding Interview Tutorial with Gayle Laakmann McDowell. www.hackerrank.com/domains/tut...
  • Věda a technologie

Komentáře • 460

  • @harshitm6403
    @harshitm6403 Před 5 lety +281

    Storing the heap in the form of an array just blew my mind...so effective

    • @theinverteddonkey2961
      @theinverteddonkey2961 Před 2 lety +10

      it's really a tree in the form of a list of nodes

    • @typingcat
      @typingcat Před 2 lety +17

      Damn, if that blows your mind, your mind most be blown multiple times a day.

    • @davidlee588
      @davidlee588 Před 2 lety

      @@typingcat haha, i'm also been wondering why people easily got blown away by simply CZcams videos, it must be like an ejaculation moment for them. 😂

    • @vectoralphaSec
      @vectoralphaSec Před 2 lety +51

      @@typingcat mine is. There is so much to learn every day. My mind is blown on a daily basis. Its great because im never bored.

    • @hamzahkhan878
      @hamzahkhan878 Před 2 lety +3

      what in the hell we were you thinking of if that blew your mind? lol

  • @WorklLife
    @WorklLife Před 6 lety +76

    This is one of Gayle Laakmann's best videos. She walks us through the code, array, and tree versions while speaking calmly in a pleasant voice. Thank you!

  • @cron93
    @cron93 Před 5 lety +64

    If you're trying to write this code in Python, beware: You cannot simply assign items[0] = items[self.size - 1]. You must pop() the item at the end of the list to remove it: items[0] = items.pop() ... also be sure to use floor division in the parent calc if using Python 3: (index - 1) // 2

  • @octamodius
    @octamodius Před 5 lety +27

    Clean implementation. Clean explanation. Wonderful video! Thank you very much for taking the time to make this. I really needed it!

  • @Saztog1425
    @Saztog1425 Před 3 lety +92

    3:22 "Aaand there we go, we've created Minecraft!"

    • @AlanD20
      @AlanD20 Před 3 lety +5

      EXACTLYYYY 😂😂😂

  • @harshwardhankoushik8515
    @harshwardhankoushik8515 Před 5 lety +40

    The explanation with the code is amazzing !! loved it....seems that would work for me! Please continue with the good work

  • @BeginningProgrammer
    @BeginningProgrammer Před 4 lety +3

    This is a really nice explanation of min heaps.... Very nice, very clear, very simple , concise and short enough to pick up in a jiffy. Thanks Gayle.

  • @sherazdotnet
    @sherazdotnet Před 2 lety +112

    Just an FYI: At 3:01 timeframe, you are showing formulas and for pareint you have [Index -2) / 2]. This needs to be change dto index -1 * 2. On next screen where you are coding it, you have it right.

    • @Pazushh
      @Pazushh Před 2 lety +5

      I think it shouldv'e been (Index-1)/2. while "/" rounds to bottom

    • @calviethang7139
      @calviethang7139 Před 2 lety

      You are right!

    • @SupunNimantha
      @SupunNimantha Před 2 lety

      Actually that equation is not for the immediate parent of any given node but it gives you the min node (top most node ). Instead of saying parent she should have told its the min. There she made a mistake. At the same time actually there is no need to have that equation because simply the 0th element is always the min.

    • @dennisfolz352
      @dennisfolz352 Před rokem +1

      @@SupunNimantha no you are wrong. The formula (index-1)/2 returns the parent for any given node. And it is important, because you need the parent of any given node if you want to heapify up. ^^

    • @santjagocorkez
      @santjagocorkez Před 8 měsíci +2

      @@SupunNimantha You could do the maths yourself: take the 9 at #3. Its parent is 4 at #1. Now let's compute: (3 - 2) / 2 = 0 (floor div). Oopsie, 9 at #3 has the root as its parent, while we know from the picture it's not.

  • @murnoth
    @murnoth Před rokem

    I am translating these lessons for use in Unreal Engine Visual Blueprints, and Gayle delivers these lessons very cohesively. Thank You!

  • @LeaFox
    @LeaFox Před 7 lety +3

    I read about heaps online and first implemented it using a right and left Node. I felt array, though - spidey senses. I wish I would have seen it on my own. But, this video was a close second. Thank you so much for a clear description.

  • @akhiljain1695
    @akhiljain1695 Před 4 lety +4

    I was searching for something just like this. Awesome explanation of implementation of heap.

  • @kiaksarshirvanimoghaddam4354

    I always had problems understanding heaps, but you made it so clear. Thank you so much ...

  • @JOJOSHgaming7514
    @JOJOSHgaming7514 Před 3 lety

    Thanks a lot, Madam. I've been burning out myself scrolling numerous websites not getting how a heap actually works and how it's implemented, and now finally implemented successfully in C#.

  • @technowey
    @technowey Před 3 lety +3

    Thanks you for this excellent video. It''s the best, most concise and straightforward, explanation of a heap that I've seen.

  • @PsyKosh
    @PsyKosh Před 7 lety +585

    Possible error around 2:52
    The diagram shows the parent as (index-2)/2, when it should be (index-1)/2

    • @g.o.4678
      @g.o.4678 Před 7 lety +36

      I believe that calculation takes the ceiling (or whole integer value rounded up, depending on the programming language) of the operation. So, for instance, to get the parent of the node at index 7, we'd have: ceiling((7-2)/2) = ceiling(5/2) = ceiling(2.5) = 3, which is the appropriate index we're looking for.

    • @arvinsim
      @arvinsim Před 7 lety

      Gbenga Ojo

    • @DimaKurguzov
      @DimaKurguzov Před 7 lety +56

      Your are right. (index-2)/2 for parent index is a mistake. Look the code at 3:22 - here is the correct version (index-1)/2.

    • @quangthang10d4
      @quangthang10d4 Před 7 lety +5

      Yes I was gonna say the same thing!

    • @josevillegas2721
      @josevillegas2721 Před 7 lety +6

      In python 2, / is integer division and it truncates the result so 5/2 = truncate(2.5) = 2

  • @guadalupevictoriamartinez4537

    I forgot this channel existed. It saved me once again

  • @johnkimura5585
    @johnkimura5585 Před 6 lety +157

    Her keyboard clicks are the most satisfying sound

  • @AlexXPandian
    @AlexXPandian Před 3 lety +1

    Best video explanation with code walkthrough showing how to answer the ubiquitous lazy interviewer question "Implement a Heap data structure".

  • @MrJakson112
    @MrJakson112 Před 2 lety

    Having that visual next to the code is such a godsent, thank you for saving my bachelors degree

  • @alicianieto2822
    @alicianieto2822 Před 4 lety +6

    The video is awesome and what I needed to know. Thank you!

  • @principlesoflife172
    @principlesoflife172 Před 7 lety +2

    This is awesome explanation and you are awesome.

  • @CamdenBloke
    @CamdenBloke Před 5 lety +18

    Pro tip: if your array is indexed at 1 (like with Fortran) the pointers are parent: (index-1)/2, left child:2*index, right child:2*index +1

    • @xMercuryx56
      @xMercuryx56 Před 2 lety +8

      that's not pro, that's just math ... lmfao

  • @m2rafik
    @m2rafik Před 6 lety +83

    Most of coders strugles to use complex abstract data structures like heaps or graphs because they dont learn it from a concrete use case.

    • @sarvasvarora
      @sarvasvarora Před 3 lety +5

      +1 for this. Doing an intro to CS course at uni rn and def if it wasn't for the coding assignments involving practical usr cases, I would've never appreciated such data structures...
      It's certainly very important to actually implement them in some use case in order to grasp them well.

    • @stas4985
      @stas4985 Před 3 lety

      why the hell graphs or heaps complex???

    • @axea4554
      @axea4554 Před 3 lety

      @@stas4985 because they are more complex than a simple non-resizable array or a linked list

  • @beingyourself9824
    @beingyourself9824 Před 6 lety +1

    Today I actually understand how coders actually codes and how to actually maintain the semantics of variables name fabulous explanation I sub you within 1 minutes of this video

  • @ManuelRochaCR
    @ManuelRochaCR Před 7 lety

    I completely ignored about heaps. Nice explanation. Thanks!

  • @programmercouple
    @programmercouple Před 3 lety +1

    This is the best explanation of Heap.
    Thanks 🙌🏻

  • @paoloparker8991
    @paoloparker8991 Před 7 lety +2

    Thank you very much miss! Awesome lesson!

  • @NathanSowatskey
    @NathanSowatskey Před 7 měsíci +1

    The calculation shown in the cartoon diagram to get the parent of the node is shown as (index-2)/2. In the code the calculation is (index-1)/2.

  • @AshfaqAhmed05
    @AshfaqAhmed05 Před 2 lety

    such an amazing explanation with clean code. Loved it!!!

  • @eddiet279
    @eddiet279 Před 7 lety

    Very clear. Even more clear than the book actually.

  • @tritrinh568
    @tritrinh568 Před 7 lety +1

    Didn't know HackerRank has itself a CZcams channel. Subscribed! :)

  • @kimberlycaritas
    @kimberlycaritas Před 5 lety +1

    SO helpful - thank you so much!

  • @enkhboldochirbat3578
    @enkhboldochirbat3578 Před 4 lety

    This is best explanation of BST on basic concepts.

  • @finn5571
    @finn5571 Před 7 lety

    For deleting a node, is there any issue with just not moving the last node up and bubbling up the smaller child of the empty node until there are no children, and then moving the remaining indices left by 1? Is it less efficient, does it cause any problems, or is it just that we want to heapify down since we already have that method for other purposes anyway?

  • @DominicVictoria
    @DominicVictoria Před 5 lety +1

    What overhead will you get from an array of class?

  • @persianhenry2897
    @persianhenry2897 Před 5 lety

    How can I insert String objects to the Heap if it is an Array? Or should I use and ArrayList

  • @esa2236
    @esa2236 Před 6 lety

    So in this array, the entire time the last subscript will be empty? I ask because when you add a new value to the heap you first put it in the last space in the array then you increment right after.

  • @dvvdsvsd
    @dvvdsvsd Před 7 lety +32

    I have final exam tomorrow, after this explanation, if this will be my pick, I know I'm safe. Amazing videos!

    • @utkarsh_108
      @utkarsh_108 Před 4 lety +1

      Best of luck

    • @ShermanSitter
      @ShermanSitter Před 4 lety

      I don't have an exam, but i found it useful as well! I don't know why, but heaps were so confusing...until now! :)

    • @ShermanSitter
      @ShermanSitter Před 3 lety

      @Chris Chu Learns ah shucks. thank you!

    • @kenansari
      @kenansari Před 3 lety +2

      how it was?

    • @Itskfx
      @Itskfx Před rokem

      Same, I'm terrible at heaps. These vids help a lot!

  • @lolipopscandy62
    @lolipopscandy62 Před 7 lety +48

    How does this not have more views?? What a simple, and amazing explanation. Subscribed!!!

    • @palanisamymadakkannu4350
      @palanisamymadakkannu4350 Před 6 lety +3

      only entertainment videos ll get more views.. useful videos wont get..😊

    • @intrepidsouls
      @intrepidsouls Před 6 lety +2

      Agree with you. I watched quite a lot of her videos and it seems like she doesn't quite understand what she is talking about either.

    • @blasttrash
      @blasttrash Před 5 lety

      @@intrepidsouls I agree too. Her book is good though.

    • @thatoneuser8600
      @thatoneuser8600 Před 3 lety +1

      Because it doesn't answer why heaps are used or when one should use them.
      It doesn't give a perfect concrete use-case where a heap would always be beneficial if used.

  • @moelayo
    @moelayo Před 7 lety

    In the heapifyUp() function why do you have to reassign index = getParentIndex(index) when the swap function does that for you

  • @anwarshaikh6023
    @anwarshaikh6023 Před 7 lety +62

    Very nice explanation. Though including big O complexity of the operations would be great.

    • @BryanTidwell2
      @BryanTidwell2 Před 7 lety +12

      Anwar Shaikh insertion and removal should be logarithmic. of course poll is constant and search is linear but you wouldn't want to use the structure for search

    • @damnstupidoldidiot8776
      @damnstupidoldidiot8776 Před 5 lety

      It should be O(nlog(n)).

    • @uusoft
      @uusoft Před 4 lety

      time complexity O(nlog(n))
      space complexity O(1)

    • @drophy
      @drophy Před 3 lety +2

      Insertion and removal have a time complexity of O(log(n)), where 'n' is the number of nodes in the heap. This is because for example, during insertion, in the worst case scenario, you'll need to move the inserted element from the bottom all the way up. Therefore, the max number of swaps is the height of the tree, which is log2(n) approximately (note that this is just true if the tree is balanced, but they always are for heaps).
      For example, her tree had 10 nodes at some point, a height of 3 (or 4, depending on how you define 'height') and log2(10) = 3.32. The max number of swaps you might need when inserting is 3. The same idea applies for removal, since the element you place at the top might need to go all the way down.
      The space complexity of the structure is O(n), of course, since you need an array of size 'n'. The space complexity of the 2 operations, however, is indeed O(1), since they don't need additional space.

  • @ophir1982
    @ophir1982 Před 7 lety +12

    Possible error at 1:54 the algorithm is said to be swapping with the smallest of the 2 child elements (when bubbling down) So 20 is swapped with 4, then the pointer is swapped with 9 (left child) while the right child is 7 - smaller.

    • @nopenope8409
      @nopenope8409 Před 5 lety +3

      1 year later but that is not correct because what you see there is already swapped so there was 4 before the swap and 20 took the place of 4 and then took the place of 9. there isn't an error

  • @wong7642
    @wong7642 Před 4 lety

    may i ask, is it true that the array index will always start from 1 for the root in the heap? but your video said it will start from 0? Thank you !

  • @VideosOfEarth
    @VideosOfEarth Před 5 lety +1

    I didn't know until now the God of programming is on youtube! Thank you ma'am! 🙏

  • @johndubchak
    @johndubchak Před 5 lety +1

    Thank you, Gayle. I enjoyed your explanation and found the visual and code helpful.

  • @Thunder117
    @Thunder117 Před 3 lety

    This is the most helpful code video i have ever seen

  • @manojkanduri1823
    @manojkanduri1823 Před 5 lety

    Curious how rightChild, leftChild hasParent english syllabuls used here are actually implemented when we are dealing with arrays :) May be doable but will turn brain teaser. I guess one would prefer to use classes at that point. In any case this video is worthwhile and very relevant. Thank you Gayle.

  • @adelinghanayem2369
    @adelinghanayem2369 Před 6 lety

    For the sake of curiosity, how can we implement a heap with with left and right nodes ?

  • @ontimegrad7069
    @ontimegrad7069 Před 2 lety +1

    Thanks for the video! But I am a bit confused about the smallerChirld at around 10 min. Should the left child always be the smaller one?

  • @DanielAzevedo94
    @DanielAzevedo94 Před 4 lety

    Awesome explanation. Healped me a lot. Thank you.

  • @rock53355
    @rock53355 Před 3 lety

    I've basically watched every one of her videos before starting the chapter in my book on the topic

  • @heldermelendez61
    @heldermelendez61 Před 2 lety

    Well done, Gayle. Thank you.

  • @AAZinvicto
    @AAZinvicto Před 7 lety

    What are the key differences between a min heap and a binary search tree?

  • @lilypad5182
    @lilypad5182 Před 2 lety +1

    For heapingDown, what if instead of the left child being swapped, the right child was being swapped, and the new node would get bubbled down to a place that exceeds the size? then the heap will no longer be compact and there would be empty spots, no? So we'd need additional implementations to take care of this case

  • @varunajaygupta
    @varunajaygupta Před 6 lety

    I am getting 404 when I am clicking on the link given in the description. I have tried to find the Cracking The Coding Interview Tutorial on hacker rank on the website, no luck there as well. Can anyone help? Thanks

  • @mvcds92
    @mvcds92 Před 7 lety +167

    The video feels incomplete because it never explains what a heap is used for, though the data structure very well.

    • @jimmithfarrel8986
      @jimmithfarrel8986 Před 7 lety +99

      A heap is used as a queue where the min (or max if max heap) is always accessed in O(1) time. If the min (which is always at index 0 is popped off, then the next smallest takes its place. Remember its stored linearly yet indexed logarithmically. Therefore its a "priority" queue.

    • @mvcds92
      @mvcds92 Před 7 lety +28

      Yeah, I've googled it afterward, though it's kind of you helping me here, thanks!

    • @musicprod8366
      @musicprod8366 Před 6 lety +3

      Thank you : )

    • @xNajda
      @xNajda Před 6 lety +3

      What's the difference then between a heap data set and just a normal ordered data set using a binary search for the placing of each new element?

    • @sumitbhattacharya1720
      @sumitbhattacharya1720 Před 6 lety

      go read a book then.

  • @DanielSincAlexandru
    @DanielSincAlexandru Před 4 lety

    I didn't figure it out how main should look like. Could you give me some tips? Thank you! Keep up the good work!

  • @yourManLan
    @yourManLan Před 5 lety

    Wouldn't the equation for the parent node @2:55 be incorrect? For example, Index 9 with the value 13. if you take (9-2)/2 you get 3. Index 3 is parent of 15 and 20, not 13. Node 7 at index 4 is parent to Node 13 at index 9, so the equation was wrong? Am I missing something? Thanks

  • @maheshnampoothirikv5080
    @maheshnampoothirikv5080 Před 6 lety +4

    We need to have one more line in the "poll()" method, correct me if I am wrong. I used the starting example (after inserting 3 as new value to heap) to test the same.
    int item = items[0];
    items[0] = items[size - 1];
    items[size - 1] = 0;//We need to make the last element zero explicitly as the last element will stay otherwise.
    size--;

    • @dishantsheth9592
      @dishantsheth9592 Před 5 lety +3

      The "size" variable maintains the boundary of the heap in the array and so there isn't a necessity to take care of elements with index >= size in the array.
      Also, "items[size-1] = 0" doesn't achieve the same result as assigning a dynamic node in a tree to null. Here, it simply gets assigned a value of 0.
      To help with understanding, consider the pop operation in the static implementation of a stack. The popped values remain in memory after pop but not in the stack because of the "TOP" pointer there. Similarly here, size keeps track of the boundary of the heap to help with add and poll operations.

  • @SavageScientist
    @SavageScientist Před 2 lety

    Bringing back memories of my Data Structures course Shini book it was actually good

  • @KelleyNielsenSalticidSoft

    At 9:03, she moves the updating of index to outside the else block. I'm thinking you could move both lines outside it and get rid of the else branch. Anyone disagree?

    • @RathodDharmin
      @RathodDharmin Před 7 lety +2

      It's more readable and less code, but "else" gives you an idea of flow.

    • @mogomotsiseiphemo1681
      @mogomotsiseiphemo1681 Před 5 lety

      You would have to re-write the code as follows :
      if( items[index] >= items[smallerChildIndex] ) //Notice the change in the binary operator from < to >=
      {
      swap(index, smallerChildIndex);
      }
      index = smallerChildIndex;

  • @yonascalender1219
    @yonascalender1219 Před 5 lety

    Is there any particular reason why you didn't use an ArrayList?

  • @michaeldang8189
    @michaeldang8189 Před 5 lety +13

    hasParent method should be simplified to:
    hasParent(int index) {return index > 0}

  • @exatiqurrahman3116
    @exatiqurrahman3116 Před 6 lety

    Except a small mistake this video is a great resource in understanding heap data structure. Thank you. :)

  • @v.audioslave
    @v.audioslave Před 7 lety +1

    is it book in russian on the table behind Gayle? :)

  • @chaptersdiversified2940

    This is the best explanation I've seen :) ty!

  • @supportteam2007
    @supportteam2007 Před 7 lety +1

    Correct me if I am wrong but I think that adding 1000 (or any number greater than 7) and then adding 5 (or 6 or 7 as well) to the heap example at 3:00 would result in an error if the heapfyUp() code provided further in the video is used. Namely, the top node would be the second number added (5 or 6 or 7) which would be greater than the left hand side child.

  • @Amolang991
    @Amolang991 Před 2 lety

    what is the reason you set the helper methods as private and others for public?

  • @cron93
    @cron93 Před 5 lety

    Also, what happens if you pass 0 as an index into parent()? You'll get back -1 from getParentIndex since (0-1)//2 == -1, and then you'll get an "index out of bounds error" in some languages or worse, you'll get the last item in the list in python!

  • @julieh4488
    @julieh4488 Před 6 lety

    Great explanation of heaps

  • @xXmayank.kumarXx
    @xXmayank.kumarXx Před 2 měsíci

    Heaps can be thought of as a binary tree. Peek takes O(1) while other operations take O(log n).
    For min heap:
    1) Insert new node at last, then heapify (ie swap with parent until parent > child)
    2) Delete the root node, replace last element at root then heapify (ie swap down)

  • @cursedswordsman
    @cursedswordsman Před 7 lety +1

    How do you remove an arbitrary element? She only wrote a method that deletes the root...

    • @benjaminkaarst
      @benjaminkaarst Před 7 lety

      To remove an arbitrary element, again, replace it with the element in the last position and decrease the the size.
      If the element is less than the removed element, then heapify up, else, heapify down.

  • @ronitdhingra4395
    @ronitdhingra4395 Před 4 lety

    That was great , could you also post an explanation of Iterative Heap Sort algorithm this simple way!!

  • @gauravmaithani4707
    @gauravmaithani4707 Před 3 lety +1

    best vid ever... thanks McDowell.

  • @nyahhbinghi
    @nyahhbinghi Před rokem

    Not sure if she explains this clearly but keeping the array operations to O(1) is probably accomplished via using swaps, where the indices to be used by the swap are found in O(1) by using parent/left/right references?

  • @owinophil5777
    @owinophil5777 Před rokem

    why are we swapping indices instead of elements in the heapifyUp method?

  • @AlexandruRepede
    @AlexandruRepede Před 7 lety +89

    this is useful for priority queues

    • @tamoorhamid519
      @tamoorhamid519 Před 4 lety +1

      That's one application.

    • @jadanabil8044
      @jadanabil8044 Před 4 lety +1

      @@tamoorhamid519 what are the other applications?

    • @tamoorhamid519
      @tamoorhamid519 Před 3 lety

      @@jadanabil8044 They can be used to efficiently find the largest or smallest value in an array.

  • @Bennettone
    @Bennettone Před 5 lety +2

    Please fix error in parent index formula

  • @saurabhvaidya4228
    @saurabhvaidya4228 Před 3 lety

    is there anywhere that lists the pros and cons of implementing heaps using arrays and Linked Lists
    Arrays do work amazing tho!

  • @SicariusVIII
    @SicariusVIII Před 5 lety +2

    Really have to appreciate the readability of the code a variables.

  • @tiffany831101
    @tiffany831101 Před 4 lety

    Amazing explanation!!!

  • @Amolang991
    @Amolang991 Před 2 lety +1

    After you poll(), shouldn't you remove the element at `items[size - 1]`?

  • @quoctrung2610
    @quoctrung2610 Před 7 lety

    This is so simple and easy to understand. A+++++++++++++++++++

  • @mantistoboggan537
    @mantistoboggan537 Před 6 lety

    So, is the relationship between heap and tree similar to the relationship between stack/array or stack/linked list? I.e. it's a heap at the higher level of abstraction, and the implementation behind the scenes is another data structure?

    • @BalagardashBashirov
      @BalagardashBashirov Před 6 lety

      yes. But heap is not usually implemented as a tree (but it can be)

  • @philtrem
    @philtrem Před 6 lety

    2:15 and where would you store the value for the node ?

  • @NickeManarin
    @NickeManarin Před 2 lety

    At @2:49, isn't parent = (index - 1) / 2 like the code uses ?

  • @devinebug
    @devinebug Před měsícem

    What is the time and space complexity ? And what are the effective use cases for min/max heap?

  • @satishchandra6623
    @satishchandra6623 Před 7 lety

    at 2:55 to 3:03 ..What if we are at first position in the heap and if we apply (index-2)/2 to get to root node then
    (1-2)/2=-1/2.But there is no -1/2 position in the heap array?

    • @abhinav_agnihotry
      @abhinav_agnihotry Před 7 lety +1

      Actually the formula is (index-1)/2. Its wrong in the video.
      n if u want to calculate the parent of root the position will be 0.
      It is also logical to use Int variable for calculating the position in an Integer form.

  • @Lisa-kk6go
    @Lisa-kk6go Před 5 lety

    I saw an error at 3:04 . Parent is (index-1)/2 instead of (index-2)/2

  • @adityachawla2163
    @adityachawla2163 Před 4 lety +1

    At 2:51 How do you know that the element at the top will still be minimum after insertion?

    • @shawnjackson7568
      @shawnjackson7568 Před 4 lety

      Aditya Chawla what do you mean? The algorithm for addition doesn’t change based on the underlying storage tool

  • @AyanSengupta17
    @AyanSengupta17 Před 6 lety +6

    It should be (index-1)/2 for the parent and not (index-2)/2. Please correct it.

  • @Itskfx
    @Itskfx Před rokem

    Can anyone how'd it have to change in order for it to function as max heap?
    Currently I assume I'd have to use heapifyDown in the add function instead of heapifyUp?

  • @forforma
    @forforma Před 7 lety +3

    why not 'get()' instead of 'poll()' ??

    • @KelleyNielsenSalticidSoft
      @KelleyNielsenSalticidSoft Před 7 lety +8

      I was wondering that myself. My guess is that it's to avoid confusion with object oriented getters that report the value of private members but leave them unchanged, the way peek() does.

  • @RagingInverno
    @RagingInverno Před 4 lety

    Why call it poll() to remove the minimum element, instead of pull()? Typo?

  • @illiaharkusha9859
    @illiaharkusha9859 Před 2 lety

    Could someone tell the name of the software, that is used in 6:23 to paint on your screen while doing something else, in this case coding?

  • @yourfriend988
    @yourfriend988 Před 3 lety

    Can some tell me please What font is used in the video code?

  • @Memes_uploader
    @Memes_uploader Před 2 lety

    are there in java inself heapifyDon and Up methods?

  • @stevenmarsh4051
    @stevenmarsh4051 Před 5 lety

    What software is she using to show the handwritten aids?

  • @tomyang7788
    @tomyang7788 Před 6 lety +1

    where is the code that actually deletes the number 25 at the bottom at 9:22 ?

    • @derekfulginiti399
      @derekfulginiti399 Před 6 lety +2

      so it doesn't actually get deleted per-say. When we decrement the size variable we are essentially placing the last item out of the array and the next call to add() will overwrite it.

  • @LY-up3qr
    @LY-up3qr Před 3 lety

    Very good explanation!