Quick sort in 4 minutes

  Рет қаралды 2,028,634

Michael Sambol

Michael Sambol

Күн бұрын

Пікірлер: 569
@WhisperingWalnuts
@WhisperingWalnuts 2 жыл бұрын
This is great video! but, I feel the algo provided in the end is not the same as the way he was explaining.. I went ahead and wrote my code for it same way he explained: ``` class Solution: def sortArray(self, nums: List[int]) -> List[int]: def quicksort(nums, lo, hi): if lo < hi: partition_resting_point = partition(nums, lo, hi) quicksort(nums, lo, partition_resting_point - 1) quicksort(nums, partition_resting_point + 1, hi) def partition(nums, lo, hi): pivotIdx = random.randint(lo, hi) nums[pivotIdx], nums[hi] = nums[hi], nums[pivotIdx] pivot = nums[hi] l_idx = lo r_idx = hi-1 while l_idx
@MichaelSambol
@MichaelSambol 2 жыл бұрын
Yeah, in the early days I didn't spend enough time on pseudocode. Trying to fix that now by building out this repo: github.com/msambol/youtube/blob/master/sort/quick_sort.py. Thanks for the feedback!
@westsideslasha
@westsideslasha 2 жыл бұрын
​@@MichaelSambol I got really confused when the pseudocode didn't match the explanation. You should correct that (in the video) ASAP.
@MichaelSambol
@MichaelSambol 2 жыл бұрын
@@westsideslasha I'm sorry about that! KZbin won't let me change the video now unfortunately, but I pinned this comment.
@manavshah448
@manavshah448 2 жыл бұрын
I am encountering an infinite loop if I change the while condition to be i < j instead of
@amono770
@amono770 Жыл бұрын
i am glad that i looked at the comment section after having a hard time connecting the pesudo code to the video content.
@EchoVids2u
@EchoVids2u 4 жыл бұрын
With every new quick sort video, I watch, I get more recursively confused.
@Iceron55
@Iceron55 4 жыл бұрын
same lol all the quicksort videos use the same words to explain it
@अनिष्टदेव-श7य
@अनिष्टदेव-श7य 4 жыл бұрын
hey man, after pulling my hair out for 2 days I finally got it, sadly I had to pay for it.
@HACKINGMADEFUN
@HACKINGMADEFUN 4 жыл бұрын
@@अनिष्टदेव-श7य what did u pay for?
@अनिष्टदेव-श7य
@अनिष्टदेव-श7य 4 жыл бұрын
@@HACKINGMADEFUN a Udemy course
@HACKINGMADEFUN
@HACKINGMADEFUN 4 жыл бұрын
@@अनिष्टदेव-श7य cool
@jonahrivera7
@jonahrivera7 4 жыл бұрын
Guy: "I think you understand the concept" Me: No I don't
@Evokans
@Evokans 3 жыл бұрын
it gets halved and is recursively applied to both halves in each step
@sleevman
@sleevman 3 жыл бұрын
@@Evokans um what?
@faith2756
@faith2756 3 жыл бұрын
@@sleevman It gets repeatedly done on each new half, as after each half the pivot is in the right place, so a new pivot is used.
@sleevman
@sleevman 3 жыл бұрын
@@faith2756 sorry wat?
@faith2756
@faith2756 3 жыл бұрын
@@sleevman Which part exactly do you not understand?
@SAMURAIch
@SAMURAIch 4 жыл бұрын
I feel so dumb when i don't understand this, but then i just scroll the comment section and realise that im not alone lol
@liuqing1995
@liuqing1995 3 жыл бұрын
understanding the meaning of pivot is the KEY.
@reguret2976
@reguret2976 Жыл бұрын
yeah, theitemfromleft, or right wasn't even properly discussed, left of what or right of what exactly?
@skyness9
@skyness9 9 ай бұрын
lol
@anshulsharma9424
@anshulsharma9424 4 ай бұрын
he is missing lot of steps , this video is a crime
@moonasha
@moonasha 2 ай бұрын
that's because it's explained horribly in this video
@alanfender123
@alanfender123 5 жыл бұрын
i should be working at mcdonalds
@SkillUpMobileGaming
@SkillUpMobileGaming 5 жыл бұрын
You really should. *SAD!*
@IStMl
@IStMl 5 жыл бұрын
@@SkillUpMobileGaming You too
@torment6425
@torment6425 4 жыл бұрын
wait what. why
@asailingstone
@asailingstone 4 жыл бұрын
lol 😂😂😂
@web-unlocked
@web-unlocked 4 жыл бұрын
that's what I was thinking. you're a genius pal
@yufangjuan4994
@yufangjuan4994 3 жыл бұрын
To ones without enough background knowledge, this video omits details of execution of each step. But to ones with, this is concise and covers sufficient key points of quick sort. Thanks a lot for your video sharing.
@noahdirksen3623
@noahdirksen3623 3 жыл бұрын
Thats the fanciest wording I've heard, i would use: "You get it or you dont"
@Seanz2088
@Seanz2088 Жыл бұрын
Try to sort a few short sequences yourself according to the steps in the video. You may get the "background knowledge".
@banderson924
@banderson924 6 жыл бұрын
So we let magic handle the rest.
@Bridgelessalex
@Bridgelessalex 5 жыл бұрын
HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
@airex12
@airex12 5 жыл бұрын
After you swap itemFromLeft and the pivot at the end, itemFromLeft is now at the end of the array. So, use that as the *new* pivot. Repeat that until its sorted.
@kennethquilantang8080
@kennethquilantang8080 5 жыл бұрын
@@airex12 so 8 is the new pivot? How can I go through if there is no number in the array greater than 8?
@airex12
@airex12 5 жыл бұрын
@@kennethquilantang8080 after 7 is put in its correct position, remember that all numbers to the right of 7 are greater than 7. In this case, there is only one number - 8. A partition with just one number is already sorted, so you can ignore it and move on to sort [6,5] to the left of 7. For sorting [6,5] choose 5 as the pivot. itemFromLeft is therefore 6, and itemFromRight has no value because no number in the array smaller than 5. Therefore, we can stop and swap itemFromLeft and the pivot to leave [5,6]. Yes, the video is unclear because it does not explain these cases. The point is that each time you put the pivot into it's correct position, you have "split" the array into two parts - one part has all numbers bigger than the pivot and the other part has all numbers smaller than the pivot. Parts with *just one* element are already sorted. If a part is already sorted, no itemFromLeft can be found. If a part is unsorted, you are guaranteed to find an itemFromLeft, and if the index of itemFromRight < the index of itemFromLeft *OR* itemFromRight does not exist then you can swap itemFromLeft and the pivot to put the pivot into its correct position in the whole array.
@kennethquilantang8080
@kennethquilantang8080 5 жыл бұрын
@@airex12 I get your point bro thanks but what would be the next step. Will I need to pick another pivot? How can I sort the rest?
@Charoula1608
@Charoula1608 6 жыл бұрын
*screams in Ross voice* PIVOT! PIVOT! PIVOT!
@peizhiyan2916
@peizhiyan2916 6 жыл бұрын
haha, I can't help imaging Ross's face, hahaha
@Daver2212
@Daver2212 5 жыл бұрын
Me in future, oh Ross's couch sort?
@Jiwoo15
@Jiwoo15 5 жыл бұрын
screams in Chandler voice SHUT UP! SHUT UP! SHUT UP!
@mahnazha
@mahnazha 5 жыл бұрын
Oh my GOOOOD :-))))))))))))) So truuuuueeeeeee
@AbdelhameedG
@AbdelhameedG 5 жыл бұрын
This is exactly what came into my mind learning about this :))
@theducksneezes4987
@theducksneezes4987 4 жыл бұрын
How to get Confused in 4 minutes then again, this was the best video about it so far
@4TH4RV
@4TH4RV 4 жыл бұрын
I want more videos like this where they explain stuff in less than 10 minutes
@omegagmysta2092
@omegagmysta2092 4 жыл бұрын
Bet ? kzbin.info/www/bejne/kJmWaIuvhrF7odk
@JoelThomas-sr6ti
@JoelThomas-sr6ti 8 ай бұрын
there's a video by abdul. i think it is best
@hakmat1769
@hakmat1769 Ай бұрын
there is better ones
@emilgebl8644
@emilgebl8644 4 жыл бұрын
If anyone is confused at the 1:10, basically he doesn't go through the loop. Instead he jumps to when item from left is higher or item from right is smaller etc. There is a left and right pointer that checks for the condition and then left++ or right-- if its not correct. itemsfromRight goes from 1 cuz its smaller, and then the right-- checks 7, not smaller, right--, checks 8 not smaller, right-- and then it checks the 0 and see that its smaller.
@christianeichmueller8637
@christianeichmueller8637 2 жыл бұрын
Thanks for the explanation!
@jamboy1843
@jamboy1843 2 жыл бұрын
what the hell are you talking about this is a church sir
@emilgebl8644
@emilgebl8644 2 жыл бұрын
@@jamboy1843 I don't even remember making this comment.
@wendyd.1918
@wendyd.1918 3 жыл бұрын
I study computer science, and once, I had an exam with a few sort algorithms in it. I didn't really study but about twenty minutes before the exam I watched your 2-4 minute videos on these sort algorithms and I passed the exam. Thank you for helping me.
@fireboywatergirl1625
@fireboywatergirl1625 Жыл бұрын
thats gonna b me td lmao
@wendyd.1918
@wendyd.1918 Жыл бұрын
@@fireboywatergirl1625 i am sure you are at the right place.
@LGNNorotic
@LGNNorotic 4 жыл бұрын
you should put the code next to all of the visual aids and highlight each line as its being done in the visual. thanks for the help with sorting!
@LL-rn8rn
@LL-rn8rn 6 жыл бұрын
The psudocode is not intuitively reflecting the walkthrough
@diabl2master
@diabl2master 5 жыл бұрын
I've been looking at it for a few minutes now, and I can believe that this pseudocode is accurate, but I'd have to check the details of what the partition function is doing to be sure, but it seems legit. Assuming your language of choice will permit a self-referential function like that.
@jscholex
@jscholex 4 жыл бұрын
@@diabl2master The recursion is fine... he's talking about how `partition` is putting the pivot on the left wall instead of the right. In the video the pivot is on the right side.
@diabl2master
@diabl2master 4 жыл бұрын
@@jscholex That would be a failure of technically reflecting, not intuitively reflecting, the walkthrough. I'm not sure OP was referring to that, but who knows.
@jscholex
@jscholex 4 жыл бұрын
@@diabl2master Yeah who knows... but I think we can all agree the pseudocode isn't great hah
@skarfie123
@skarfie123 3 жыл бұрын
the pseudocode shows the Lomuto version but the visualisation is for the Hoare version, which is better. See Wikipedia for both.
@yessirski7868
@yessirski7868 9 ай бұрын
people are complaining but this is gonna come in clutch for my wirtten exam tmr.
@fr5229
@fr5229 7 жыл бұрын
This is great. The simple explanation and the especially simple pseudocode towards the end makes it easy to understand the core concept of the algorithm.
@nabe4320
@nabe4320 7 жыл бұрын
am still confused
@ibu433
@ibu433 6 жыл бұрын
N Betancourt cuz the way he explains it IS confusing I’ve watched this a couple of times, thought I understood went to the exam and screwed up Now that I’ve watched other videos I understand that the way he explains it is confusing
@thewiseowl8804
@thewiseowl8804 5 жыл бұрын
N Betancourt He made it more confusing, for sure.
@diabl2master
@diabl2master 5 жыл бұрын
He didn't explain what quick sort does in general, what it can be applied to, and left some holes in the explanation that someone with no experience would struggle to grasp. Which is a shame.
@omegagmysta2092
@omegagmysta2092 4 жыл бұрын
Hope this helps :kzbin.info/www/bejne/kJmWaIuvhrF7odk
@alvin_row
@alvin_row 4 жыл бұрын
i hope you got it cute bird from nichijou
@ToriliaShine
@ToriliaShine 2 жыл бұрын
thank u so much, i have an exam tommorow and was stressing bc i couldnt figure out how quick sort work with my teacher's explanation and this just simplified it easily. tysm ;-;
@AushHegde-om9xv
@AushHegde-om9xv Жыл бұрын
The video explains the concept of quicksort, a recursive algorithm used for sorting arrays. It emphasizes the importance of choosing a pivot and demonstrates the process of partitioning the array. The video also mentions the pseudocode for quicksort and discusses its time complexity. Understanding Quicksort Algorithm 00:00 Quicksort is a recursive algorithm that uses a pivot to sort an array. 00:13 The pivot is placed in its correct position, with smaller items to the left and larger items to the right. 03:24 Choosing the pivot properly is crucial for the performance of the algorithm.
@Shivam25Verma
@Shivam25Verma 3 жыл бұрын
Thank u very much Sir, I got it completely. Actually I'd missed my college online lecture b/c of sleeping... U saved me just night before exam, as urs is the shortest video on YT.
@Woopinah
@Woopinah 3 ай бұрын
Very very good video, thank you! I really love how you never stutter over your words, and never say uhm or uhhhh. That makes this very easy to watch.
@godaimer999
@godaimer999 3 жыл бұрын
explained it much fckin better in 4 minutes with 1.5x watchspeed than my teacher in a 90 minutes class, thank you sm
@matedominguez2883
@matedominguez2883 Ай бұрын
Great series man! This week is my Algorithms II exam and these helped me. Keep it up :)
@brianmartinez6193
@brianmartinez6193 3 жыл бұрын
I watched several videos, including my school books, and I had no idea what they were saying with left to right and could not get the answers in the correct order because of that. I was able to understand after watching your video and it allowed me to get past my assignment. Thank you.
@MewPurPur
@MewPurPur 3 жыл бұрын
Yess I finally understood it, having a clear mind the morning before the exam helped
@gm130s
@gm130s 2 ай бұрын
4:03 In the Partition func, `low` never gets modified so the `for` loop would deadlock. In the Python example linked from this video it uses `range` that increments so the loop won't deadlock. Sorry if this is duplicated info.
@sachinpathy6940
@sachinpathy6940 3 жыл бұрын
i put this at 1.5x and now i learnt quick sort 2.6667 minutes
@IOSALive
@IOSALive 9 ай бұрын
Michael Sambol, You're amazing! Let's be friends and have fun together!
@ganimatormusic
@ganimatormusic 2 жыл бұрын
Thank you so much, i have a pc science test today, and i didn'T understand since i can't speak german that well and i am still learning it, this guy explained it all
@atmajoburman7335
@atmajoburman7335 4 ай бұрын
better and much easier algo than any standard quicksort algo available in the books
@nemesis9410
@nemesis9410 5 жыл бұрын
This is the most confusing and incoherent visualization of quicksort I've ever seen
@thewiseowl8804
@thewiseowl8804 5 жыл бұрын
Well said 👍
@ChristianMay21
@ChristianMay21 5 жыл бұрын
Makes perfect sense to me
@thewiseowl8804
@thewiseowl8804 5 жыл бұрын
Christian May That’s so great! 🙌👏
@diabl2master
@diabl2master 5 жыл бұрын
I thought the visualisation was fine. I feel that I understand it now.
@cristian-bull
@cristian-bull 4 жыл бұрын
This is the fist visualisation of quick-sort I've ever seen, so I know it doesn't mean much, but I agree.
@seltonmc
@seltonmc 3 жыл бұрын
Your short videos helped me a looot. Thank you so much!
@chinmayhattewar4456
@chinmayhattewar4456 4 жыл бұрын
Imagine newcomers watching this explanation for the first time.
@BethanyLowe8773
@BethanyLowe8773 3 жыл бұрын
Thank you. I feel the same about my actual online course I'm studying. And I'm a newcomer. I feel better.
@krishnarajj9358
@krishnarajj9358 3 жыл бұрын
horrible
@csstudent7175
@csstudent7175 Ай бұрын
I wish the video was longer… You explained quite well, but I would love to learn more about the details that you didn’t get a chance to cover.
@snake3276120
@snake3276120 3 жыл бұрын
LOL this is one of the best and easiest video out there on quick sort. All of you disliking it shouldn't do programming.
@mehdibadaoui1658
@mehdibadaoui1658 5 жыл бұрын
when i search for something on youtube and see one of your videos in the results i genuenly get excited
@lemonw3906
@lemonw3906 4 жыл бұрын
The pseudocode is hard to read, but the variable name "leftwall" is really good, this gives me a vivid concept of how the leftmost larger item was swapped and the "wall" moved.
@hiteshsahu_
@hiteshsahu_ 2 жыл бұрын
pseudocode is actually wrong as well !
@blurryhorizon
@blurryhorizon 2 жыл бұрын
@@hiteshsahu_ Exactly, not only 1 pointer moves & stopping when this 1 pointer reaches end of the array, but also only picking leftmost value as pivot
@Kokil92341
@Kokil92341 2 жыл бұрын
@@hiteshsahu_ Exactly , i have wasted so much time over it
@scarlettwang2146
@scarlettwang2146 2 жыл бұрын
​@@blurryhorizon I suppose that in the Partition function, the "pivot = A[low]" should actually be "pivot = A[high]"? Very confusing so I wrote it down and found out that the pseudocode doesn't work properly. // Oh just realised that although pivot = A[low] might works as well but the pseudocode is totally wrong for Partition function jeez..
@kemot25
@kemot25 Жыл бұрын
@@scarlettwang2146 I think it should be as it is. Something else is wrong.
@Kleyguy7
@Kleyguy7 3 жыл бұрын
I think I'm here for the fourth time now.
@HelloWorld-tn1tl
@HelloWorld-tn1tl 3 жыл бұрын
This is the first video that made me really understand how to impl quicksort, and it's very short.
@dh7222
@dh7222 8 жыл бұрын
These are some clean tutorials. Thank you for making this!
@smbowner
@smbowner 10 ай бұрын
Hey, Thanks for the explanasion, It was a clear and concise video, however the pseudocode is somewhat wrong I believe in 3 things: In Partition, the order of operations is not correct: increment leftwall first, then swap. The final swap in Partition is not correctly swapping the pivot's original position with A[leftwall]. The recursive calls in Quicksort should be updated to exclude the pivot_location from the ranges, properly dividing the array into segments that exclude the sorted pivot. here is the corrected version: Quicksort(A as array, low as int, high as int) if (low < high) pivot_location = Partition(A, low, high) Quicksort(A, low, pivot_location - 1) Quicksort(A, pivot_location + 1, high) Partition(A as array, low as int, high as int) pivot = A[low] leftwall = low for i = low + 1 to high if (A[i] < pivot) then leftwall = leftwall + 1 swap(A[i], A[leftwall]) swap(A[low], A[leftwall]) return(leftwall) Thanks again!
@devanshityagi8231
@devanshityagi8231 5 жыл бұрын
Wow... You just found a place in my mind where you stored quick sort so deeply.🙋💖😂
@DT-ll8og
@DT-ll8og 2 жыл бұрын
Thanks for clear explanation. Correct Position for Pivot, let recursive do remains. Good job man.
@parthpatel-bt7qw
@parthpatel-bt7qw 7 жыл бұрын
This was exactly the kind of video I was looking for!! Short and concise, but no loss of information. Thank you.
@M15onehundred
@M15onehundred 5 жыл бұрын
Nice! Glad to see magic still exists!
@Brooklyn-nk9by
@Brooklyn-nk9by Жыл бұрын
Love the videos!
@Guy19372
@Guy19372 Жыл бұрын
Haha you copied me! Very funny feel like a real bogo sort right now
@J4T375
@J4T375 4 жыл бұрын
all your videos are short and very useful.
@ragavendhart
@ragavendhart 6 жыл бұрын
I guess, In the quicksort explanation he moves the pivot to the RIGHT END of the array. In the pseudocode, he moves the pivot to the LEFT end of the array. And after the swapping is done, he then brings the pivot to the original position from the LEFTEND. I've seen too many quicksort algorithm videos and this works the best for all my cases.
@okaydayy
@okaydayy 4 жыл бұрын
That is the exact! same Quick Sort Algorithm we have been thought. Really good! Thanks
@mirana7660
@mirana7660 2 жыл бұрын
it's 8:48 AM, i have an exam at 15:30 PM and ur saving me here
@akira_asahi
@akira_asahi 2 жыл бұрын
Thank you for the video. I am grateful for your time and contribution. Kind regards, Akira.
@prohakerofficial
@prohakerofficial 6 ай бұрын
Very good video, I learned quick sort easily thanks to this. Although, I did have to rewatch the "median-of-three" explanation.
@liormoreh8313
@liormoreh8313 5 күн бұрын
Best Quick Sort video ive ever seen!
@noddycode7324
@noddycode7324 5 жыл бұрын
QuickSort has always been a bit of a mystery to me, but somehow this video instantly made it click. Thank you so much!
@senaszel
@senaszel 4 жыл бұрын
Helped me. Great vid. Fan of your since now. Cheers.
@baribari600
@baribari600 4 ай бұрын
"let's let recursion handle the rest" > "here's the rest of the owl"
@SarveRadhaNaam
@SarveRadhaNaam 2 жыл бұрын
don't you think at 4:04 , in Partition code. leftwall++ should be before swap(A[i], A[leftwall])
@Crzynoob
@Crzynoob 5 жыл бұрын
Psuedo code does not match demonstrated algorithm.
@powergaming2883
@powergaming2883 2 ай бұрын
There was quiet a bit of sigma in this video wouldn't you say my fellow skibidis?
@Athanas007
@Athanas007 5 жыл бұрын
0:10 who else thought of Ross screaming Pivot from that Friends Episode
@lil-mi-777
@lil-mi-777 2 жыл бұрын
The video hold the key of quicksort, most clear to me!
@arminkrahbar
@arminkrahbar 2 жыл бұрын
The visualization is perfect!
@davidrichmond9759
@davidrichmond9759 6 жыл бұрын
These 4 minute videos are great for cramming!
@reytampubolon6390
@reytampubolon6390 2 жыл бұрын
currently studying for my Algorithms and Data Structure exam, your video is very helpful :) thanks
@AaryanDhand
@AaryanDhand 10 ай бұрын
thank you so insightful :)
@AaryanDhand
@AaryanDhand 10 ай бұрын
me too
@AaryanDhand
@AaryanDhand 10 ай бұрын
yo me too
@yahiashams2334
@yahiashams2334 3 жыл бұрын
That without voice over made the video from great to perfect
@SuperJosba
@SuperJosba 2 жыл бұрын
Perfect explanation of quick sort!!
@CompilerStuck
@CompilerStuck 2 жыл бұрын
I can now finally sort my life out
@jola_mir8327
@jola_mir8327 3 жыл бұрын
Grate video! Just one thing. @ 1:53 itemFromLeft is 0 and itemFromRight is 5. This part confused me.
@jeffchai6561
@jeffchai6561 3 жыл бұрын
This algo is akin to a toddler randomly sorting numbers around until they're in order
@Tracing0029
@Tracing0029 4 жыл бұрын
This will be useful for tomorrow's exam.
@user-fc5ou7pn2k
@user-fc5ou7pn2k 2 жыл бұрын
amazing, ive got an exam tmrw... this lesson is much appriciated as my professor is not very good at explaining these basics
@Rglezy
@Rglezy 3 жыл бұрын
FINALY SOMEONE WITH CLEAR INSTRUCTIONS
@VictorBanerjeeF
@VictorBanerjeeF 5 жыл бұрын
Thanks Brother, You save my 10 min exam fast revision time
@miso-ge1gz
@miso-ge1gz Жыл бұрын
i cannot even describe how much i hate learning these, thanks for the video it helps a lot
@inco__gnito__channel
@inco__gnito__channel Ай бұрын
I think we should pick the pivot and start comparing , value at i and pivot value not pivot is shifted at last.index and keep swaping based on element values Pseudo Code : QUICKSORT(A) 1: if A is empty then 2: return A 3: last← (length(A) − 1).index 4: pivot ← A[last] // Take last element as pivot 5: less ← {A[i] | A[i] ≤ pivot, i != last} 6: more ← {A[i] | A[i] > pivot, i != last} 7: return (QUICKSORT(less), pivot, QUICKSORT(more))
@Carl-Gauss
@Carl-Gauss 9 ай бұрын
4:11 I think the more precise way to put would be not “chosen properly” but instead “we don’t get very unlucky”.
@karaqore
@karaqore 2 жыл бұрын
Hvala ti brate pomogao si mi puno u životu
@MauricioVonB
@MauricioVonB 3 күн бұрын
I liked it, a clear and complete video. Thanks a lot :)
@Jack-dx7qb
@Jack-dx7qb 5 жыл бұрын
Why the pseudocode doesn't intuitively reflect the walk through? (Quote from Wikipedia) "The pivot selection and partitioning steps can be done in several different ways; the choice of specific implementation schemes greatly affects the algorithm's performance." There are two partition schemes: 1. Lomuto partition scheme, which is the pseudocode provided in the video. 2. Hoare partition scheme, which is the walkthrough in the video. Comparison (Quote from Wikipedia) 1. "As the Lomuto partition scheme is more compact and easy to understand, it is frequently used in introductory material, although it is less efficient than Hoare's original scheme." 2. "Hoare's scheme is more efficient than Lomuto's partition scheme because it does three times fewer swaps on average, and it creates efficient partitions even when all values are equal." To understand the Lomuto partition scheme more, I recommend a KZbin video called "Quicksort: Partitioning an array" by KC Ang.
@ggg-tq9be
@ggg-tq9be 3 жыл бұрын
thank you a lot!
@haloum
@haloum 2 жыл бұрын
this made it a lot more logical for me, thank you.
@chetanphoenix
@chetanphoenix 4 жыл бұрын
I really like this explanation. This moves the pivot out of the way and swaps it back with the itemFromLeft pointer. That's so much easier than some other videos I've seen where the pivot is in the middle of the action and we're confused with >= or
@ggg-tq9be
@ggg-tq9be 3 жыл бұрын
yes! It is cool!
@mitchross4002
@mitchross4002 2 жыл бұрын
God bless you man this is by far the most straightforward and comprehensible explanation of quicksort, really got me out of a pickle with this one.
@MichaelSambol
@MichaelSambol 2 жыл бұрын
God bless, Mitch
@nolanrudolph5463
@nolanrudolph5463 5 жыл бұрын
I feel like the pseudo code would reflect the presentation a lot more if we let pivot be A[high] with rightwall=high-1. Then the conditional statement to initiate swap would be if(A[i]>pivot), and of course having rightwall=rightwall+1
@mekabare
@mekabare 11 ай бұрын
I'm seeing myself working customer service for the rest of my life
@saranyabalasubramanian445
@saranyabalasubramanian445 2 ай бұрын
My prof taught me this is in like 1 hour(nothing reached to my braincells)but this 4 minutes taught me well ☝️
@jarencascino7862
@jarencascino7862 4 жыл бұрын
This is exactly what I was looking for in a video
@alanperaza5696
@alanperaza5696 4 жыл бұрын
It was quick and I understood everything. Thanks a lot
@고구마-q9l
@고구마-q9l 5 жыл бұрын
my professor is horrible at explaining this so I had to find a youtube video about quicksort and teach myself
@SunsetsOverBatteryCity
@SunsetsOverBatteryCity 8 ай бұрын
Him: “quick sort = pivot” Me: “WHILE HE HID IN RADIO WE PIVOTED TO VIDEO 🗣️💥”
@MuggL
@MuggL 7 ай бұрын
Your videos are busteling always, keep cooking!
@campermortey
@campermortey 7 жыл бұрын
I'm a little confused. In your very detailed, and helpful, explanation of itemFromLeft and itemFromRight it makes total sense. It is similar to the method Gayle uses in her QuickSort video to keep going and swap left and right having both points meet each other. Your implementation, however, seems to go a completely different route by using a for loop with only one pointer and swapping with a wall, similar to Harvard's CS50 class on QuickSort. Also, I found your code kinda confusing by swapping the values and not indexes. I had some problems running that code. My partition looks like this: public static int Parition(int[] array, int left, int right) { // Make starting pivot the last one for now int pivot = array[right]; int leftWall = left; // Go through array until index is reached for (int i = left; i < right; i++) { // If item at array[i] is less than or equal to pivot then switch with leftwall if(array[i]
@samimulaw
@samimulaw 6 жыл бұрын
i am confused too
@ragavendhart
@ragavendhart 6 жыл бұрын
Gayle's video doesn't work for a few cases. This explanation is perfect and works like magic. Great job!
@icxonrus
@icxonrus 6 жыл бұрын
This video uses Lomuto partition scheme while Gayle uses Hoare. They are both valid, and Hoare is faster for some cases, see wiki for more info.
@jaymiracle5500
@jaymiracle5500 5 жыл бұрын
For those who are not understanding the pseudo code, here is the code that matches the demonstration: private static int partition(int[] arr, int low, int high) { int itemFromLeft = low, itemFromRight = high, pivot = arr[high]; while(itemFromLeft < itemFromRight) { //you need the second condition for the rare case where the pivot is the largest while(arr[itemFromLeft] = pivot && itemFromRight != low) itemFromRight--; if(itemFromLeft < itemFromRight) { int temp = arr[itemFromLeft]; arr[itemFromLeft] = arr[itemFromRight]; arr[itemFromRight] = temp; } } int temp = arr[high]; arr[high] = arr[itemFromLeft]; arr[itemFromLeft] = temp; return itemFromLeft; } *Keep in mind that his pseudo code is 100% correct, it just shows a different partition method that can be used to do the same thing. Also I did this rather quickly so if there are any bugs please let me know*
@DeusNudus
@DeusNudus 5 жыл бұрын
its actually not correct, "leftwall = leftwall + 1;" needs to happen right before "swap(array[i], array[leftwall]);" not after it.
@ephy9974
@ephy9974 2 жыл бұрын
Thanks man. I've been wondering why this pseudocode doesn't match the explanation
@jugsma6676
@jugsma6676 4 жыл бұрын
Take a pivot as the biggest number, the code will recurse an infinite number of times. And you can't simply swap A[i] and A[leftwall] in for loop based on A[i] < pivot. We also need to consider if A[high] < pivot before swapping.
@winterfoxx6363
@winterfoxx6363 3 жыл бұрын
but how could A[high] be less than pivot if the high is supposed to be a value greater than pivot? and why not always pick a pivot from the middle?
@Versole
@Versole 2 жыл бұрын
Out of all the sorting algrotiems this one the hard to understand but you understand it you'll understand it.
@yazoo0oody9
@yazoo0oody9 3 жыл бұрын
what if i encountered an element equal to the pivot
@sushan_karki
@sushan_karki 5 жыл бұрын
watching this video from NEPAL. Great sir. THANK YOU.
@kylemarcusenriquez4770
@kylemarcusenriquez4770 5 жыл бұрын
2:49 I'm assuming you skipped the part where if they were equal you'd continue?
@docteurraton7280
@docteurraton7280 5 жыл бұрын
You mean itemFromLeft and ItemFromRight? They can't be equal beause they were chosen to be greater and lower than the pivot
@Seanz2088
@Seanz2088 Жыл бұрын
Thanks for the concise and succinct tutorial.
@Bigleyp
@Bigleyp 3 ай бұрын
Thanks. Pretty simple explanation.
@rajparsi3160
@rajparsi3160 Жыл бұрын
Great tutorial. The sudo code seems to be disconnected with the presentation though. It appears a different way to achieve partition
@MichaelSambol
@MichaelSambol Жыл бұрын
Yeah :/ I didn't put enough emphasis on code early on. Apologies for that. See here for straightforward code: github.com/msambol/youtube/blob/master/sort/quick_sort.py. Let me know if you have questions!
Bubble sort in 2 minutes
2:10
Michael Sambol
Рет қаралды 1 МЛН
2.8.1  QuickSort Algorithm
13:43
Abdul Bari
Рет қаралды 3,4 МЛН
To Brawl AND BEYOND!
00:51
Brawl Stars
Рет қаралды 17 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
Learn Quick Sort in 13 minutes ⚡
13:49
Bro Code
Рет қаралды 422 М.
Heap sort in 4 minutes
4:13
Michael Sambol
Рет қаралды 1 МЛН
Quicksort: Partitioning an array
4:48
KC Ang
Рет қаралды 597 М.
Breadth-first search in 4 minutes
3:59
Michael Sambol
Рет қаралды 345 М.
Merge sort in 3 minutes
3:03
Michael Sambol
Рет қаралды 1,3 МЛН
OpenAI's o1 just hacked the system
26:31
AI Search
Рет қаралды 237 М.
3 Types of Algorithms Every Programmer Needs to Know
13:12
ForrestKnight
Рет қаралды 516 М.
Big-O notation in 5 minutes
5:13
Michael Sambol
Рет қаралды 1,2 МЛН
LeetCode was HARD until I Learned these 15 Patterns
13:00
Ashish Pratap Singh
Рет қаралды 697 М.
Quicksort Algorithm: A Step-by-Step Visualization
9:32
Quoc Dat Phung
Рет қаралды 75 М.