Тёмный

Heap sort in 4 minutes 

Michael Sambol
Подписаться 126 тыс.
Просмотров 1 млн
50% 1

Step by step instructions showing how to run heap sort.
Code: github.com/msa... (different than video, I added this retroactively)
Source: ind.ntou.edu.tw...
LinkedIn: / michael-sambol

Опубликовано:

 

4 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 284   
@cardakeys
@cardakeys 4 года назад
Everybody gangsta till pseudocode kicks in
@vaiebhavpatil2340
@vaiebhavpatil2340 3 года назад
fr😂
@pedrovillar2746
@pedrovillar2746 3 года назад
True lol
@miloradowicz
@miloradowicz 3 года назад
Wriwitng pseudo code is easy once you understood the algorithm. Reading someone's pseudo code on the other hand can be quite annoying, because they may use different naming conventions, different syntax and even different "language" than you.
@marleyalexzander9326
@marleyalexzander9326 3 года назад
I guess Im randomly asking but does someone know of a method to get back into an Instagram account..? I somehow lost my password. I appreciate any tips you can give me!
@isaiahmarcel7844
@isaiahmarcel7844 3 года назад
@Marley Alexzander Instablaster ;)
@timetraveler6780
@timetraveler6780 5 лет назад
Audio is so clear, amazingly static free( it is so near to being a meditation app audio).
@fridaaa0
@fridaaa0 2 года назад
*listens to heap sort as meditation*
@Chesspro-yb6hl
@Chesspro-yb6hl Год назад
Lol
@karatefrosch17
@karatefrosch17 6 месяцев назад
I am genuinely impressed at how shit my professor is he takes 5 slides to explain this and never asks any of the many questions i had. This video did more for me than 2 lectures.
@Raccoon_TheGreat
@Raccoon_TheGreat 2 месяца назад
my lecture explained it over 7 slides, kind of understandable, but the video sure helped
@ankitb3954
@ankitb3954 6 лет назад
you just saved my semester. I have been binging your channel
@Blueglitter73
@Blueglitter73 6 лет назад
This was very clear to me. Now I understand heap sort in a visual sense thank you
@helo-fn8pn
@helo-fn8pn 7 лет назад
ok, better than my lecture just read through slides
@anonymuzz5827
@anonymuzz5827 5 лет назад
i agree
@Jonasbagger
@Jonasbagger 3 года назад
Until you are asked to prove the time complexity ^^
@parikshit804
@parikshit804 6 лет назад
I like the small time of these videos. Neat graphics. Good work.
@devendratapdia11
@devendratapdia11 5 лет назад
First i felt why u didnt explain how to build max heap but then it becomes clear as thats not the point of video and can be learnt seperately. You are making these look so simple. Thumbs up to you.
@weiliu_
@weiliu_ 9 месяцев назад
What a clear explanation. I couldn't understand what teacher said till I see this video 👍
@joevtap
@joevtap 2 года назад
What a nice explanation! That made my understanding of the algorithm a lot easier, thanks a lot
@kogmawgaming
@kogmawgaming 4 месяца назад
I owe my entire CS degree to videos like this. Explains stuff much better than professors you have to pay for : ^)
@MichaelSambol
@MichaelSambol 4 месяца назад
when you IPO your tech company you can toss me 1% ;)
@BlerdGrid
@BlerdGrid 6 лет назад
The best part is the very last portion where everything is summed up and pseudocode is given. Thanks! Exploring more videos to prepare for an interview!!
@fernandothehorse
@fernandothehorse 3 года назад
how'd the interview go
@INT_MAX
@INT_MAX 7 лет назад
Thank you for speaking proper English.
@Sitback
@Sitback 6 лет назад
LMFAOOOOOO [TRUUUUUUUUUUUUU]
@Rajonty
@Rajonty 6 лет назад
LOL
@dreamy6517
@dreamy6517 5 лет назад
Thats fucking racist tho
@raphaelandrade555
@raphaelandrade555 5 лет назад
@@dreamy6517 That's not racist, there are people who speak bad english, what's the problem with that?
@randomhappyguy6719
@randomhappyguy6719 5 лет назад
@@raphaelandrade555 Consider this: someone's native language is English and has lived in Japan for 2 years, and this person makes a video in Japanese, which incurs some native Japanese speaker saying "he's not saying proper/bad Japanese". It's like laughing at a 1-month-old not being able to walk.
@tobyto4614
@tobyto4614 2 года назад
Doesn't make sense, if the build max heap has already sorted in desc, why would I need to do another sort again.
@luisf_lima
@luisf_lima 25 дней назад
that's what I thought, it doesn't make any sense
@elcar5468
@elcar5468 6 месяцев назад
This process was very confusing in my lecture but looking at it with the array and the tree side-by-side made it crystal clear what was going on.
@shacharh5470
@shacharh5470 5 лет назад
You skipped all the details on how build-max-heap works! That was the part I wanted to see, I need to understand how it manages complexity of O(n)
@navikh333
@navikh333 5 лет назад
Me too..stupid video
@a_medley
@a_medley 5 лет назад
it manages O(n) by using a bottom-up approach. Each sub-tree in a heap must also maintain the heap property. When you run build-max-heap the runtime depends on the height of the tree. Since you can safely build a heap bottom-up, you would get something like this: O(n + (1/2)n + (1/4)n + (1/8)n + (1/16)n + ...), which simplifies to O(2n), or just O(n). That's not exactly what happens, but it's along those lines. You should google "linear time build heap" for more info.
@mdnamussakib8077
@mdnamussakib8077 Год назад
Great explanation. Short and precious.
@Satoabi
@Satoabi 5 лет назад
I turned it into "heap sort in 2 minutes"
@vascanor6085
@vascanor6085 3 года назад
after watching several videos, I find it the best
@yuvaranikannan9297
@yuvaranikannan9297 5 лет назад
Short and sweet explanation. Thank you:)
@Mahdi_757
@Mahdi_757 Год назад
Great tomorrow our mem will be taken our class test..now i watching your video😊great.. ❤
@RealSlimRoeder
@RealSlimRoeder 4 года назад
i know this is a little late but thank you so much for this video!! the way you explained it, i understood this much better than when my prof talked about it in class. bonus points for the pseudocode at the end :D
@remingtonward5356
@remingtonward5356 Год назад
This saved me for my algorithms test. Thank you
@iovewhalien2191
@iovewhalien2191 Год назад
omg my textbook made this so confusing, but this gave me so much clarity thank you so much!
@ethanbai5712
@ethanbai5712 6 лет назад
Nice video, Michael. This is very clearly explained.
@norbertkolud2878
@norbertkolud2878 6 месяцев назад
saving lives to this day, thank you very much
@raphaelpaillard557
@raphaelpaillard557 2 года назад
Thanks for everything you're doing buddy
@zhonq
@zhonq 6 лет назад
gonna share this channel w/ all my CS friends omg
@masterjif9506
@masterjif9506 4 месяца назад
Well congrats on y’all’s graduation
@yasark.4238
@yasark.4238 2 месяца назад
@@masterjif9506 😂
@alanoudalmotairi4544
@alanoudalmotairi4544 4 года назад
From 2020 that’s still bright video 👩‍💻
@nosignal5908
@nosignal5908 10 месяцев назад
Most amazing and simplified explanation
@daksneezian1252
@daksneezian1252 6 лет назад
Your videos are incredible, very useful - thanks!
@DarkGT
@DarkGT 7 лет назад
after 5 videos explaining Heap Sort I get it now, next binary tree...God help me.
@boggeshzahim3713
@boggeshzahim3713 5 лет назад
Kind of weird to understand a heap sort without understand what a binary tree is
@TheAmayzinRayzin
@TheAmayzinRayzin 5 лет назад
@@boggeshzahim3713 I said the same thing lol
@ishaanj8023
@ishaanj8023 4 года назад
A binary tree is just a tree in which each node has 2 children at most, just a definition.
@LucasNaruto8107
@LucasNaruto8107 7 лет назад
Dude, your short explanation is awesome
@rolo_1
@rolo_1 6 месяцев назад
best explanation on how it works
@mateopuna98
@mateopuna98 3 года назад
Excellent explanation, simple and clear!
@matts8791
@matts8791 Год назад
Awesome video, way better than my professor!
@Nyckoka
@Nyckoka 3 года назад
Yes, yes, yes. This is insanely good. Thanks for the video
@anonymous-dp7od
@anonymous-dp7od 10 месяцев назад
Thank you sir. Just simple to understand ☺️
@the_smell_of_coffee
@the_smell_of_coffee Год назад
Not all heroes wear capes. You saved me😮‍💨
@MichaelSambol
@MichaelSambol Год назад
💪🏼❤️
@gibi1313
@gibi1313 Год назад
I think the array you used in this example might be misleading, as when you do the max-heap you obtain a descendent sorted array and from there you can just flip it to get the sorted array.
@AahanaHegde-py7ng
@AahanaHegde-py7ng Год назад
yes this is what is confusing me, im new to programming, but can you explain why just using max heap isnt enough?
@seanharris5594
@seanharris5594 Год назад
@@AahanaHegde-py7ng max-heap just ensures that the parent node is greater than its children which doesn't guarantee that the tree written in the array form will be sorted in descending order. For example, when the original array has max-heap applied to it in the video it returns the array 9 8 5 3 2 1 (which is sorted descending). However, if you look at the representation of the tree in the video and imagine flipping the left sub tree with the right you would get the array 9 5 8 1 3 2. This still satisfies the condition that the parent node is greater than the child, but the array is no longer sorted.
@nebularzz
@nebularzz Год назад
great tutorial! took me a while to understand but now i get it thank you for teaching me this
@foobars3816
@foobars3816 4 года назад
1:38 and we are done, just call reverse on the array.... wait why are you messing it up again? I think the example data made this more confusing as it ended up sorted after the first build-max-heap call.
@Minefortress21
@Minefortress21 3 года назад
That is the point
@jatinkumar4410
@jatinkumar4410 4 года назад
Very clearly explained. Thank you sir.
@li-pingho1441
@li-pingho1441 3 года назад
The best tutorial of heap sort :)
@salsamancer
@salsamancer 10 месяцев назад
Always appreciate CS tutorials without the Hindi accent 👍🏿
@attilatoth1396
@attilatoth1396 7 лет назад
Good as always! Thank you Michael!
@NickWinters
@NickWinters 4 месяца назад
I'm confused. Why do you need two functions for this? In both cases the input was a tree and the output was a max heap. Maybe it's because we know that after the first one it's only the root node that is out of place, and we use another function that doesn't do unnecessary calculations related to other nodes. Then it'd be better if the name was more descriptive. Considering how it doesn't operate on the whole tree, it can be named something like heapify_branch instead
@MichaelSambol
@MichaelSambol 4 месяца назад
Could you take a look at the full playlist, I think it will help: ru-vid.com/group/PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6. Code: github.com/msambol/dsa/blob/master/sort/heap_sort.py
@jroseme
@jroseme Год назад
Hmm, not sure I'm going to retain this long enough to get these test questions right lol
@OK-cv1pt
@OK-cv1pt 2 года назад
I have mid term comming up, thanks sir
@madhavanand756
@madhavanand756 3 года назад
1:35 At first function call of "Build Max Heap" we have sorted array in descending order, we fix this simply by swapping. Why are we performing these many operations ? Anyone please !
@surajmodi49
@surajmodi49 3 года назад
that just happens for this example.. doesn't happen always
@franklounatics
@franklounatics 5 лет назад
Thank you for this sample of heap sort!!! 😍
@Jkauppa
@Jkauppa 2 года назад
hash sort by distribution function (for example linear) direct bin division placement, subsort each bin, O(n), divide and conquer, extended quick sort by multiple pivots at once, the bins
@ozzy8489
@ozzy8489 Год назад
Very nice explanation!! Thanks a lot. 😊
@ogradus
@ogradus 3 года назад
I don't get it, build max heap sorts the tree, right? Why not just build the array with the sorted tree backwards, linearly?
@ranjanaashish
@ranjanaashish 6 лет назад
greatly simplified. Superb explanation :)
@gaganupadhyay2175
@gaganupadhyay2175 4 года назад
A very nice explanation. Thanks
@shaund34
@shaund34 4 года назад
After you buildMaxHeap the array was sorted already in inverse way. Why don't you just reverse it?
@ambalikasharma6474
@ambalikasharma6474 3 года назад
Well explained sir, very nice explanation.
@sinto4105
@sinto4105 4 года назад
at 1:35 why you are sorting the sorted array
@alexanderphilipsieber8251
@alexanderphilipsieber8251 4 года назад
Lokesh Joshi it was a coincidence that his max heap was already sorted in descending order. That will not always be the case. Should be a different example to avoid confusion like this
@sivanisanku881
@sivanisanku881 6 лет назад
Tq sir less time more information about heap sort
@에헤헿-l7v
@에헤헿-l7v Год назад
so clearly explained! Wow thank you
@mattm7831
@mattm7831 3 года назад
My professor didn't even post a class, she just uploaded links to all your sort videos instead.
@andrepascoa6687
@andrepascoa6687 3 года назад
Quite shitty tho
@andrepascoa6687
@andrepascoa6687 3 года назад
Well unless she wanted to explain harder topics
@piltonswrangbrahma5140
@piltonswrangbrahma5140 2 года назад
Noice...much better video than others
@nextadastraschool7230
@nextadastraschool7230 8 месяцев назад
Brother please make a video on threaded binary tree insertion, your videos are great and in less time, great for revisions and understanding complex concepts easily and quickly ❤
@ibadshaikh2215
@ibadshaikh2215 4 года назад
Great Explanation..Keep it up buddy
@MattaparthiShivaBhargav
@MattaparthiShivaBhargav 3 года назад
This is the Ffff reason I subscribed
@TheRealKitWalker
@TheRealKitWalker 3 года назад
Heap sort in 4 mins!? 😱 You desperately need code optimization 😂 just kidding. Great video, well well explained. thanks ✌️👏
@elias-9395
@elias-9395 5 лет назад
Very informative. Thanks a lot
@tastelesstouch
@tastelesstouch 7 лет назад
Very nice explanation. Just subscribed.
@AkiZukiLenn
@AkiZukiLenn 3 года назад
When you learnt Binary tree search and now eager to use it in this heap sort knowing it's not gonna be that smooth, bruh.
@aleksystrzecki205
@aleksystrzecki205 Год назад
Awesome explanation
@MichaelSambol
@MichaelSambol Год назад
thank you!
@nqobaninhlengethwa8363
@nqobaninhlengethwa8363 5 лет назад
The best tutorial. Thank you
@vinothselvaraj8005
@vinothselvaraj8005 6 лет назад
Very good explanation. Thanks
@lounaemile7143
@lounaemile7143 4 года назад
simple and effective, thanks for the video
@dominiorrr6510
@dominiorrr6510 7 месяцев назад
What's the point of heap-sorting when we already have a sorted max-heap at 1:40? Yes, it's sorted backwards, but heapsorting takes more time than reversing a sorted array. I don't really get it. EDIT: I got it and I think the example used in the video wasn't that good, because a max-heap doesn't necessarily end up being a sorted array.
@EricSartor
@EricSartor 6 лет назад
I'm very confused about something. When you call build-map-heap, you are sorting the entire array in descending order. At that point, the array is sorted. Why would you keep sorting after that point?
@temirlansafargaliyev8873
@temirlansafargaliyev8873 6 лет назад
for example, left child can be less than right one, so now array is unsorted UPD: the left child of right child can be greater than the right child of left child. This try must be correct :)
@azzam7239
@azzam7239 2 года назад
Yes it's sorted but remember that it is *heap-ordered* and the resulting array is in the binary tree notation. The last portion of the algorithm is still necessary to have a sorted array by making use of the heap ordered array by continuously removing the largest element and reheapfying until you get your sorted array
@2004seraph
@2004seraph Год назад
@@azzam7239 I don't really understand, in all the examples I see, the heap is physically stored as an array, and max heapify sorts that array perfectly, so why don't we just use that array?
@APC9906
@APC9906 5 лет назад
Videos are awesome man.
@Cos_Wayne
@Cos_Wayne Год назад
Clear explanation. Thanks.
@GermanCoDClan
@GermanCoDClan 6 месяцев назад
awesome, very much appreciated!
@kipchumba1276
@kipchumba1276 2 года назад
Amazing and concise. Thanks
@desheen5056
@desheen5056 7 лет назад
thank so much , liked and subscribed i have test and this helped me a lot ^^
@sohamdave1192
@sohamdave1192 4 года назад
Thanks a lot, Love from INDIA
@jandemel5246
@jandemel5246 3 года назад
Just having a chicken curry! Sending love to INDIA 🇮🇳 and all the boys who helped me with my university degree 😆
@davidjames1684
@davidjames1684 4 года назад
I wonder if on average, plucking the 2 largest elements from the maxheap (if available), will speed things up. It seems wasteful to not pluck 2 at a time since we know the 2nd one will be one of the roots children. I traced this example on paper and it seems to work well. However I would like to know on say a 1 million entry tree (19 levels deep), how much faster it would be in real time. I would want to randomly generate 1 million numbers, store them for input to both "flavors" of heapsort, then make a table of outcomes. For example, 4.7 seconds classic heapsort, 4.6 seconds modified heapsort. I would also want to try cases with 1 million unique numbers, cases with 1 million small numbers with lots of repeats (like in the range 1 to 1000), and 1 million numbers with large gaps (like use 1 million random 32 bit numbers). I think the results would be interesting. Maybe someone can try it and report back.
@ryklin1
@ryklin1 2 года назад
you omitted the initialization of the variable 'n' in the function heapify. n = elements_in(A)... it is the number of elements in the array of data.
@AyyyyyyyyyLmao
@AyyyyyyyyyLmao Год назад
Amazing quality. Dark mode option perhaps?
@MichaelSambol
@MichaelSambol Год назад
thank you! all new videos for sure. I wish there was an easy option for dark mode on old videos, but it'd require remaking them.
@coroutinedispatcher
@coroutinedispatcher 5 лет назад
You haven't pass the n as a parameter in the heapify method.
@generalginger7804
@generalginger7804 Год назад
If we can build the maxheap why do we even need to sort it? Isnt it already sorted?
@maya.n
@maya.n 5 лет назад
So, when you do max heap the first time, you get a sorted array but in a different direction. Can't you just make a new array that has the same values, but reversed and you are finished with the sorting?
@kylestormeyes4976
@kylestormeyes4976 5 лет назад
yahh like put everything into a stack and then take it out in order ?? I thought the same :P hopefully someone will answer
@maya.n
@maya.n 5 лет назад
@@kylestormeyes4976 Actually, It is not correct. It only happens in certain cases, and this one is one of them. I should've deleted the comment when I realised that.
@Kokurorokuko
@Kokurorokuko Год назад
@@maya.n Thank you for not deleting the comment. I thought the same thing.
@tamhuynh772
@tamhuynh772 6 лет назад
good job Michael!
@DarkKnightLives
@DarkKnightLives 2 года назад
Why don't we reverse the elements of the data structure after first "build max heap"?
@ian562ADF52E
@ian562ADF52E 2 месяца назад
I'm so happy 30% was passing in my DSA course...
@ojazzista
@ojazzista 2 года назад
Is it right to assume that a Heap is ordered? We know that the heap property guarantees the greater or smaller relation between parent and children, but the overall tree may not be exactly ordered.
@MichaelSambol
@MichaelSambol 2 года назад
Can you take a look at the Heaps playlist? It provides more context. ru-vid.com/group/PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6
@SCGamingVN
@SCGamingVN 5 лет назад
thank you very helpful
@alex19991014
@alex19991014 2 года назад
From the Pseudo code, as the for loop in the HeapSort() is already decrementing from n to 1, the (n - 1) in the HeapSort() should be useless?
@魏雍
@魏雍 7 лет назад
Just a little mistake, BuildMaxHeap() consumes O(nlogn) time. (Above upper bound is not tight enough, BuildMaxHeap() operation costs linear time)
@slash8266
@slash8266 7 лет назад
Not really. It's O(n) because the work at the bottom-most level is unneeded, so you effectively only work on half of the nodes. Check CLRS!
@魏雍
@魏雍 7 лет назад
Thank you for the reply. But in this case for BuildMaxHeap() we call Heapify() n/2 times and each time costs O(logn) time, so the total time complexity is O(nlogn). Is there anything not proper?
@slash8266
@slash8266 7 лет назад
魏雍 incorrect because the heapify for nodes at height h-1 only trickle down once, the ones above it trickle down twice, and so on. So for each level, the amount of work goes down as you go deeper into levels. Not each one of the n/2 nodes will do logn work! in fact the only one that will do logn work is the root node :) I suggest you have a look at CLRS. It shows the correct way of computing this tighter bound.
@魏雍
@魏雍 7 лет назад
Checked CLRS, it's my misunderstanding(^_^). You are right Slash!
@slash8266
@slash8266 7 лет назад
魏雍 cheers! :)
@JossinJax
@JossinJax 4 года назад
In the example, I failed to see the difference in functionality between heapify and max heap :/ Good vid though, keep it up!
@ososzaid3444
@ososzaid3444 4 года назад
Think of heapify as a way to restore the max heap property "Max element at root" when we remove the root
@rubykanima
@rubykanima 2 года назад
But there isn't a decleration for n in the pseudo code in at Heapify()
@michal3833
@michal3833 2 года назад
what a great video, thank you! I think there is a mistake in the pseudo code in BuildMaxHeap. if you assign i to start from n then the index of the last element is i-1 and not i. it's better to assign it to start from n-1 and then you don't need to subtract n after the swap. also, you put 1 instead of n when calling the Heapify function.
@sulee1058
@sulee1058 4 года назад
love your explanation thx
@kewei4767
@kewei4767 Год назад
Trying to understand build-max-heap and heapify here. Based on your explanation, build-max-heap arranges the tree so that the highest value goes to the top, forming max heap, then you swap it with the last element (bottom right) in the tree and remove it from the tree. Then you call heapify to gradually move the last element situated on top down for the child nodes (having higher value) to go up. How does the node choose which immediate child node to promote? And if what heapify does reiteratively is to eventually move the highest value node up to the top, why cant we call build-max-heap in the beginning?
@MichaelSambol
@MichaelSambol Год назад
Have you taken a look at the other two videos in this playlist? I think they'll help. ru-vid.com/group/PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6
Далее
Merge sort in 3 minutes
3:03
Просмотров 1,2 млн
Heaps, heapsort, and priority queues - Inside code
19:01
HA-HA-HA-HA 👫 #countryhumans
00:15
Просмотров 3,5 млн
2.6.3 Heap - Heap Sort - Heapify - Priority Queues
51:08
Heaps in 6 minutes - Methods
5:56
Просмотров 76 тыс.
Quick sort in 4 minutes
4:24
Просмотров 1,8 млн
Bellman-Ford in 5 minutes - Step by step example
5:10
Heap Data Structure | Illustrated Data Structures
11:31
Big-O notation in 5 minutes
5:13
Просмотров 1,1 млн
3 Types of Algorithms Every Programmer Needs to Know
13:12
B-trees in 4 minutes - Search
4:07
Просмотров 24 тыс.