The Quicksort Sorting Algorithm: Pick A Pivot, Partition, & Recurse

Поділитися
Вставка

КОМЕНТАРІ • 405

  • @nano959
    @nano959 5 років тому +389

    A CS tutor that speaks clearly and concisely??? Very rare!

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +19

      yeah

    • @alanliang9538
      @alanliang9538 4 роки тому +31

      Jonathan Banuelos you mean he doesn’t speak Indian accent lol

    • @pulkitjain8135
      @pulkitjain8135 4 роки тому +5

      @@alanliang9538 what do you mean by that??

    • @za3931
      @za3931 4 роки тому +1

      @@pulkitjain8135 racism

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

      just say you're xenophobic and move on

  • @brett9769
    @brett9769 5 років тому +97

    Hey man. Been watching your videos for a few weeks. Your explanations and thought process is exactly what I needed to get a refresher on all things ds&a. I just recently landed a job offer at a dream company, so thanks a ton for all your hard work and help!

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +11

      nice. Hope work goes well and you are happy :)

    • @arnabchakraborty246
      @arnabchakraborty246 4 роки тому

      My feeling is also same here, Iwas searching for this kind of thinking ability

  • @arvindg553
    @arvindg553 4 роки тому +52

    This guy's : is this ever impacting u?
    Me : what? It's saving my life

  • @BackToBackSWE
    @BackToBackSWE  5 років тому +57

    Table of Contents:
    Talking About Stuff 0:00 - 1:05
    Introducing Quicksort 1:05 - 2:04
    The Split Subroutine 2:04 - 2:43
    The Partition Subroutine 2:43 - 3:24
    Partitioning: Choosing A Bad Pivot 3:24 - 10:34
    Partitioning: Choosing A Good Pivot 10:34 - 15:11
    Analysis: Choosing Bad Pivots 15:11 - 19:06
    Analysis: Choosing Good Pivots 19:06 - 22:07
    Analysis: Good Pivots - Work Done At Leaf Level 22:07 - 23:37
    Flashback To Merge Sort 23:37 - 24:01
    Why Quicksort Is O(n*log(n)) 24:01 - 25:02
    Wrap Up 25:02 - 26:12
    Errors:
    3:25 - 15:11 -> I messed up how I advanced 'i' in both examples. I should have started 'i' at left - 1 everytime...my bad. What should happen is that we should start 'i' at 'left - 1' and anytime we swap into 'i' we always advance 'i' FIRST before the swap. These errors don't change the fundamental job of 'i', which is to keep the tail of the section of items less than the pivot. Make sure you take that away from this.
    4:02 -> Forgot to edit that text out haha
    24:23 -> This is only the exact bound on the best case. Not the average case as well.
    The code for quicksort is in the description. Fully commented for teaching purposes.

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

    now we are at 161k
    thank you for all your efforts
    love from india

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

    2022 and you're still helping people. I'm not enjoying my classes but watching your videos give me reassurance that I really like these topics. Thanks a lot man!

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

      Glad to hear that! Subscribe to our DSA course with a flat 30% discount for some amazing content b2bswe.co/3HhvIlV

  • @SihaLoire
    @SihaLoire 4 роки тому +4

    FINALLY someone who explains what a pivot is. Pivot concept is key to understand how quicksort works and also to understand "the kth largest element in an array" problem.

  • @carson6954
    @carson6954 5 років тому +66

    I wish I just watched your videos instead of taking my algorithms and data structures class

  • @riverlance9647
    @riverlance9647 4 роки тому +6

    One of the best Tech -tuber, has an website on interview prep and still gives his best in youtube explanantions and dont advertise his website on youtube like tech lead , clement does,
    tech-lead and clement should learn from him on how to give best in youtube and stop honeytrapping vulnerable kids

  • @zachzulanas4125
    @zachzulanas4125 4 роки тому +12

    dude you're literally the only reason why I understand these algorithms. My CS 101 prof teaches so weirdly, you should really consider pursuing academia if you haven't already

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

    It's impacting. In a good way. Most professors in most cs programs really don't go into detail about these algorithms much. Even grad school programs have that problem at times because then it seems like you should know these things. You're doing a good job and hopefully this channel and others stick around.

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

    Don't stop doing what you're doing! These videos have been an incredible help in getting my head around algorithmic time complexity for my computer science masters - thank you!!

  • @chrisxx9268
    @chrisxx9268 4 роки тому +4

    You're one of the most eloquent tech guys on youtube. I just started programming this month, and your video helped me implement quicksort in JS!

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      great! but im not a tech guy, Im just a guy

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

    Stumbled upon this during my interm. algorithms class at UC Riverside. Honestly dude, your short videos do more than entire lectures for my understanding. Thank you.

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

    One of the best instructors on UA-cam! Thank you for your contribution!

  • @bhar92
    @bhar92 5 років тому +4

    Dude. Thank you for putting the time in making these videos. They are IMMENSELY helpful! Don't burn out making them, take your time, do them at your pace, cause they are some of the best in the business. Really, you are awesome.

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +2

      Thanks. I haven't burnt out. I just started work in San Francisco and I am building a pretty cool and fancy site for this channel which I hope to launch mid-end of July. Once it is out I'll be back on the throttle to post more technical videos as I support the site and begin working on the next software.

  • @natachatomkinson1332
    @natachatomkinson1332 4 роки тому +4

    This is one of the Back to Back SWE videos have helped me understand "Introductions to Algorithms" - a book probably aimed at people who already understand the algorithms in question. I am so glad for this series. Thanks a lot!

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

    This guy is a genius, find an easy and intuitive way to explain.

  • @0x1h0b
    @0x1h0b 5 років тому +3

    Impact ?? it's life saver.... when ever i get stuck on some basic concepts ..this is the place i jump to... keep up the good work.

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +1

      hahaha thanks, yeah I'm back, about to make a ton of videos

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

    you have been a huge factor in helping me understand some of these concepts. Please keep it up. You're the first place that I go when I'm having trouble.Thank you!

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

      Thank you, glad you liked it 😀
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends 😀

  • @frankhu5418
    @frankhu5418 4 роки тому +1

    Because you asked to. I'm posting again to let you know that you're helping me so much. Thank you for your help. The impact is huge on my life. These resources are some of the best most helpful videos on interviewing I've seen.

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

    "We do not place an item, into the section, that is less than the pivot." - just needed that much.
    Thank You, Brother! #keepUptheGoodWork.

  • @nanujhakree9057
    @nanujhakree9057 5 років тому +4

    Hey Bro.... Just wanna say... Keep up with your videos, they help students like us all around the globe..... ❤️❤️❤️❤️❤️❤️

  • @danielasanchez8151
    @danielasanchez8151 4 роки тому +1

    You are my favorite! What is really helpful is that you explain the idea, which is what a lot of videos don't do. Mosts just focus on the coding, but not in the concepts. I'm very thankful I found you!

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

    this channel deserves more than million subs

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

    Hey, my friend. I'm an SDE with a couple of years of industry and academic background. I really appreciate your effort to explain this algorithm. Regardless of the commercial purpose behind the video, your explanation is mostly accurate and easy to understand ( Though I have to say, it's better for you to put the average case before the worst-case example in this video.) Carry on, looking forward to new content from you!
    btw: I have the confidence to say many, yes many, explanations of quicksort from some others are WRONG. Well done, sir!

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

      one more suggestion, I will be better for you to explain why quick sort is "Quick". I know the answer..but..I'll leave the work to you...

  • @juni1634
    @juni1634 5 років тому +4

    Hey man thanks for posting these videos they are helping me a bunch, I'm about a month out from my job hunt, using your videos to prep while I continue to learn some Angular. Going to pitch in what I can for the Patreon thanks again !!!

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      Aw, thanks

    • @dprophecyguy
      @dprophecyguy 5 років тому +1

      Hey Man i am also in the same position with Algo and Angular but i think i am comfortable with Angular, Do you want to study together ?

  • @poojaguru2516
    @poojaguru2516 5 років тому +6

    I've never understood something so clear... thank you so much! :')

  • @arvindg927
    @arvindg927 4 роки тому +1

    This is the only vedio I found which tells exactly what exactly is PIVOT.. THANKS
    BRO

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

    probably the most easy to understand video on quicksort. Thank you

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

    Thank you for making these videos! The way you explain and break down things are great! They are helping me so much here in 2022 and I am going to try and watch all of them. I wish you much success in your career!

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

      Thank You!!
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends :)

  • @winperec
    @winperec 4 роки тому +2

    I guess you have not enough subscribers and watches! One of the best CS videos I ever seen. Thank you!

  • @teji7723
    @teji7723 4 роки тому +1

    I hope you realize that you are changing peoples lives!(for the better).

  • @LizyAd
    @LizyAd 28 днів тому

    Watching from Chicago and love this so much! Thanks for clarifying this algorithm.

  • @lockitdrop
    @lockitdrop 4 роки тому +1

    I haven't understood quicksort for 2 years, thanks a bunch man

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

    For sure your videos is causing a positive impact. At least, for me this channel is so valuable. Great job man!

  • @tarunsraina7243
    @tarunsraina7243 4 роки тому +4

    Thank you so much,you probably dont know how much this means to me. Love from india🇮🇳

  • @AvinashKumar-pl7wc
    @AvinashKumar-pl7wc 4 роки тому +2

    I wish i could like the video million times. Thanks for the gift.

  • @MrAbsinator
    @MrAbsinator 4 роки тому +1

    why is this guy better than the lecturer in my course that I paid $2.2k for?

  • @jayyupinhu9146
    @jayyupinhu9146 5 років тому +7

    give this man a gold metal! respect!

  • @jageenshukla4825
    @jageenshukla4825 5 років тому +2

    Hay man I just want to say thanks for all the videos because of that today I am having f2f interview in Amsterdam. I am not sure I will pass or not but you gave me enough confidence to face it.. :) cheers

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      Hahaha nice! I just came back from Amsterdam...like 2 days ago. That's wild. I walked past the Oracle office behind this one Dutch dude who was speaking Dutch and he had a cool Oracle bookbag.
      Ahhh...good times.

    • @jageenshukla4825
      @jageenshukla4825 5 років тому +1

      @@BackToBackSWE Ohh I missed my chance of doing mock interview with you :p

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      @@jageenshukla4825 haha

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

    You're very good at explaining. I watch your videos and they make me very happy

  • @Gapo1994
    @Gapo1994 5 років тому +7

    Amazing Videos ! I love how you explain everything at the deepest level which is exactly what I need to understand those algorithms properly :D

  • @MotoRider23605
    @MotoRider23605 4 роки тому +1

    Wonderful tutor! With each passing days, I am falling in love with Algo's, good job brother..looking forward to have more lessons from u.

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

    What a great teacher, my god! always amazed by your skills ❤

  • @StrayKev
    @StrayKev 5 років тому +1

    TY so much. Clearest quicksort video on youtube

  • @heyjordn
    @heyjordn 4 роки тому +1

    This channel made me love algorithms again

  • @im_parth
    @im_parth 4 роки тому +4

    Teaching is an art and you are an artist :)

  • @ulziiko
    @ulziiko 4 роки тому +3

    Thanks for hard work, I can see how much effort you put in this video.

  • @saurabhjindal2775
    @saurabhjindal2775 4 роки тому +2

    Best content I have ever encountered

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому +1

      thx

    • @saurabhjindal2775
      @saurabhjindal2775 4 роки тому +1

      @@BackToBackSWE you really read your comments. Only some have this quality.
      Really Impressed

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      @@saurabhjindal2775 Yeah haha, why wouldn't I. I really care about what I'm building.

  • @roberttaylor8391
    @roberttaylor8391 5 років тому +1

    I have never commented on a UA-cam video before but thank you so much for this! Your code for Quicksort actually makes sense, which is something I have not found to be the case for other sources, including Cracking the Coding Interview. I have subscribed :)

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

    You are a legend. I always go watch you on here before a class :)

  • @ruxaa2224
    @ruxaa2224 4 роки тому +1

    At 10:38, you say that it doesn't matter where i starts; as far as I saw the algorithm says it's got to start at start - 1, which de facto makes all the passes in the first iteration to swap i with j, but all instances of i and j are equal (that's cause you increment the i before the swap), or the condition about array[j]

  • @Victor-cg4hx
    @Victor-cg4hx 2 роки тому

    It's glad to see that my favorite basketball player Chris Paul teaching the algorithm courses.

  • @songulmesale5264
    @songulmesale5264 11 місяців тому

    ı hated data structures lectures before thıs man but now I can easily understand everythıng .thank u a lot .You are my hero :)

    • @BackToBackSWE
      @BackToBackSWE  11 місяців тому

      Happy Holidays 🎉 this means so much, thanks, songulmesale! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40

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

    Finally understand quick sort! Thanks so much

  • @mariasandru7
    @mariasandru7 5 років тому +2

    You had a great impact on me!!! You are a blessing!!!!

  • @calebwalls8668
    @calebwalls8668 4 роки тому +1

    Your videos are really awesome and have helped me alot in my data structures class for LSU. Thank You!

  • @shardulsemwal29
    @shardulsemwal29 4 роки тому +1

    It is really much helpful and good then our professor lectures

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

    Perfect! I really love that, you explain it as good as it's posssible. Nice.

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

    You helped me survive an algo class 💯

  • @tinkerneer
    @tinkerneer 5 років тому +2

    Thanks for this, I was actually wondering couple days ago why there isn't a sorting video for quick sort.

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      yeah, give me a year or 2, this channel needs to be fleshed out more. I'm aware of all that's missing for the most part.

  • @kudozebra
    @kudozebra 4 роки тому +2

    The example at 11:00 can be more helpful if it has a number in the first half that is greater than the pivot, for example [3, 8, 4, 5, 9, 7] and pivot is 7. when i = 0, j = 1, we don't do the swap since 8>7, then j becomes 2 and based on your description we swap 3 and 4? What about 8 in between them? It should not stay where it is

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

    You are gifted! Thanks for making these concepts easy

  • @joy-sm5sl
    @joy-sm5sl 3 роки тому +1

    2021 and your explanations still helps, a lot. thank you so much! gonna binge on your vids and hopefully it helps my journey throughout this CS major :')

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

    Continue! You are doing great, man! Thanks a lot!

  • @vibekdutta6539
    @vibekdutta6539 5 років тому +2

    The best explanation ever, so detailed, I really enjoyed it!

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      nice

    • @vibekdutta6539
      @vibekdutta6539 5 років тому +1

      Sir, I really need a help from you, I am not really good at Dynamic programming and there's a problem that's eating my head for a long time, could you please please please solve it and make me understand?

    • @vibekdutta6539
      @vibekdutta6539 5 років тому

      The problem is "Faffa and The Ancient Mathematician" from Code forces.

    • @vibekdutta6539
      @vibekdutta6539 5 років тому

      There an explanation of the problem by Rachit Jain on UA-cam but I didn't get the multiple DP going on in parallel. Please help me, coz there's none to guide me! Thanks! :)

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      @@vibekdutta6539 haha um, I'm pretty busy, I'd love to but don't think I can make the time today

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

    Amazing videos, the only teacher who actually explains algorithms clearly! One question- at 11:19 you said that "it does matter where i goes... I messed up... but you get the idea". Where should i go, at -1 or 0?

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

      I saw in your attached code that i starts at -1, so that when j finds a number, i will be incremented to point to the next available spot in the 'less-than' portion. Then the swap occurs, and j is advanced forward. However, I've also been messing around with my own implementation and it seems that you can start i at 0, as long as you perform the swap first and THEN increment i. When it comes to reinserting the pivot, it needs to be at i (rather than at i+1 when i starts at -1).

  • @shruti6768
    @shruti6768 5 років тому +1

    YOU ARE HAVING AN IMMENSE IMPACT. AND THANKS FOR IT!!!

  • @ExarchiasGhost
    @ExarchiasGhost 4 роки тому +1

    You explanation is amazing. be assured that one day I will take few days off to watch all your algorithm themed videos :)

  • @yardy88
    @yardy88 4 роки тому

    This is so well presented. Instant subscribe. Thanks man.

  • @bonniwanamaker6296
    @bonniwanamaker6296 5 років тому +8

    Yet another great video. Where were you when I was learning this stuff in undergrad? :-)

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +9

      In middle school I think...near corn fields 🌽🌽

  • @gisellg7699
    @gisellg7699 4 роки тому +1

    If i could like this 100 times i would 😩omg best video on youtube about quicksort! I literally have watched all lol thank you for making these videos

  • @thanga2317
    @thanga2317 5 років тому +3

    great video. Could you please make a video for Subset Sum Problem (Print all subsets with given sum) Dynamic Programming?

  • @AlAmin-sl8eg
    @AlAmin-sl8eg 9 місяців тому

    the best teaching technique

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

    Hello, where did you go? Why you are not uploading new videos? You are a great teacher

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

    Love the video, but isn't there a more optimized way to implement quick sort? In the code, it always picks the last item as the pivot, which is some cases with large inputs, it will timeout.

  • @luismigueltrinta8041
    @luismigueltrinta8041 4 роки тому

    U just saved my next exam

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

    What I learned.
    1. Find a home for 1
    2. Sandwich 1
    3. Resting place for 1

  • @ilya1131
    @ilya1131 4 роки тому

    man I love your videos, your teaching skills are amazing!

  • @hamsalekhavenkatesh3440
    @hamsalekhavenkatesh3440 4 роки тому

    Very intuitive explanation! thanks...
    so how do we choose an optimal pivot element, so our quicksort operates in best/average-case time complexity. ?

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

    Thank you so much! You're a genius in your explanation way

  • @044_karan8
    @044_karan8 4 роки тому +1

    I like your videos even before starting .. that's how much I like your content..keep making this kind of videos pls :)

  • @cool2suck
    @cool2suck 5 років тому +2

    tbh miss you speaking passionately loud ahah it got me PUMPED TO LEARN but thank u always for these

    • @BackToBackSWE
      @BackToBackSWE  5 років тому

      hahahaha, I HATED that era of this channel. I wish I could erase it but the content is still decent. So I left it.

  • @rohangarg5473
    @rohangarg5473 5 років тому +1

    best explanation on quick sort !!

  • @puperhacker2150
    @puperhacker2150 5 років тому +2

    Congrats for 10k!

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

    Really thanks for the detailed explanation, this video solved my questions watching Wiki of Quicksort

    • @BackToBackSWE
      @BackToBackSWE  11 місяців тому

      Happy Holidays 🎉 Haha Thank you for your kind words! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40

  • @lextor99
    @lextor99 5 років тому +1

    Subscribed! Very good explanations, please continue doing what you do.

  • @MrTheBestJay
    @MrTheBestJay 5 років тому +5

    Dude, you're gifted! Thanks so much for helping us to get our dream jobs :D

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

    Every other video I have seen so far avoids the worst case. Quicksort is relatively easy except for when you have a 1 or a max val.

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

    6:10
    "what does i do?" - me trying to learn DS&A before @Back To Back SWE

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

    The more sorting videos I watch, the more unsorted my brain becomes.

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

    I love your videos! Keep up the good work!

  • @svetashtrakh6565
    @svetashtrakh6565 5 років тому +1

    You're so cool ! Thank you for your videos, now I'm more confident about passing my exam :)

  • @bicboi46
    @bicboi46 4 роки тому +2

    Hey bro, can you do an average case analysis for quick sort with mathematical induction.

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      I cannot but would if I had the time allocation and if it was rewarding enough from an angle of benefiting the whole viewerbase , etc.

  • @小子雨果
    @小子雨果 10 місяців тому

    Any new videos? Your explanation is so good!

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

    I really felt the "move on" at 7:37.
    Btw, really helpful video!

  • @王祥-u2e
    @王祥-u2e 4 роки тому +1

    Thanks for the nice video!
    I think the most difficult part of this algorithm is the "index", however, it's ommitted.
    May I know where is the demo code?
    If the case "a[j] is less than pivot, but j-i is bigger inclusively than 2" is added, then it will be more clear.
    By the way, how to handle this situation?
    Maybe the definition of i should be the "the position of the pivot", instead of "the last element which is smaller than pivot".

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      The repository is deprecated - we only maintain backtobackswe.com.

  • @bhargavsai2449
    @bhargavsai2449 4 роки тому +1

    You are a real man

  • @jayanttanwar4703
    @jayanttanwar4703 4 роки тому +1

    Thanks man,good explanation.