Sorts 8 Quick Sort

Поделиться
HTML-код
  • Опубликовано: 5 дек 2016
  • Dr. Rob Edwards from San Diego State University quixotically characterizes the quick sort algorithm, really the only sort you need or use.

Комментарии • 183

  • @LeoUfimtsev
    @LeoUfimtsev 6 лет назад +240

    I've watched about 6 videos on Quicksort. This one is really the best because it first explains the theory and then the in-place algorithm, where as most other videos only explain one or the other but algorithm is confusing if you don't understand the theory behind it. Thank you for this post.
    The reversed on-glass writing is kinda cool as well. Kudos.

    • @lucasv4q
      @lucasv4q 5 лет назад

      agreed!!! holy god this is mind blowin. great work sir!!

    • @kosiak10851
      @kosiak10851 5 лет назад +4

      Did you really believe that he was writing inverse?
      And His left-hand writing is just coincidense then? Don't be naive! The video is mirrored obviously!

    • @Raminder55
      @Raminder55 3 года назад

      Can you please help me with Sorting a Singly Linked List using Quick Sort. Please whatapp me if you can help me +919041121318 or mail me at mann.ramin@gmail.com. Thanks In advance..

    • @rosali7551
      @rosali7551 2 года назад

      exactly!!

  • @benid3163
    @benid3163 5 лет назад +53

    Wow. This should be the #1 search result for quicksort in RUclips. Understood it, and am now going to code it!

  • @piyushsharma1638
    @piyushsharma1638 6 лет назад +70

    teaching style is awesome.

  • @hackpiece3094
    @hackpiece3094 4 года назад +14

    The only Quicksort vid that was Quick to understand ❤️

  • @imlijunglalongchar1858
    @imlijunglalongchar1858 4 года назад +111

    I just spend the first 2 mins trying to figure out how they filmed it XD

    • @benzeltser9851
      @benzeltser9851 4 года назад +12

      probaly a transparent wall and mirorred video by edit

    • @manuelfideles9468
      @manuelfideles9468 4 года назад +13

      it's called learning glass, it reverses the image in real time. No editing whatsoever

    • @minar7555
      @minar7555 3 года назад +8

      @@manuelfideles9468 no, the learning glass aka Lightboard does not reverse the image in real time. "...The lecturer writes on
      the glass surface with fluorescent markers while the session is recorded...Because any written text will be backward in the direct camera view, the text orientation must be flipped, either by pointing the camera toward a mirror reflecting the Lightboard and the presenter or by digitally reversing the image..."

    • @errorgrisha
      @errorgrisha 3 года назад

      First time I was same )

    • @nakulankurmullam2982
      @nakulankurmullam2982 3 года назад +2

      Glass wall and video mirroring
      Edit: spelling

  • @guy.g
    @guy.g 4 года назад +1

    These videos have helped me through my data structures courses IMMENSELY.

  • @ponka128
    @ponka128 5 лет назад +3

    One of the best explanations of Quick Sort. Thank you !

  • @Farrukhw
    @Farrukhw 5 лет назад +1

    Thanks a lot Rob for all your hard work and making it easy to understand... Really appreciated ... :)

  • @markdanskin8202
    @markdanskin8202 2 года назад +4

    I feel like I watched 10 other videos and read a few articles about this but this finally got it through my head properly. This is really something that needs to be explained just like this to understand. I was getting far to bogged down with the recursion element to fully grasp the simplicity of this algorithm. This is a great explanation because it really just boils it down to what is actually happening, and the logic. Rather than getting encumbered by the actual implementation in a particular language.

  • @cornevantonder7439
    @cornevantonder7439 5 лет назад +4

    I have been through video after video, website after website and NONE of them were able to help me understand quicksort. Within the first 2 minutes of this video it all made sense. THANK YOU!!!

  • @jiageng1997
    @jiageng1997 5 лет назад +10

    Amazingly done... my own lecturer left me more confused than before when he spoke about it

  • @abc17034
    @abc17034 4 года назад +7

    Am I the only one who is impressed not only with his algorithmic interpretation, but also with his digital whiteboard

    • @oo-gr2sw
      @oo-gr2sw Год назад +1

      I think he uses translucent/noctilucent board markers.

  • @jayaprakash1951
    @jayaprakash1951 2 года назад +1

    Bro you are the best ! Man literally watched 7 videos to understand this method but your video is the one to understand this method

  • @christopherward7232
    @christopherward7232 6 лет назад +1

    This was a great video! Actually managed to follow through your method and stopping to code each step that you explained. Thanks :)

  • @Revelatus
    @Revelatus 6 лет назад +258

    swop

    • @FredoCorleone
      @FredoCorleone 5 лет назад +7

      It seems correct even though it sounds weird

    • @LudwigvanBeethoven2
      @LudwigvanBeethoven2 5 лет назад +51

      Its an optimized version of swap. Performs at least 10 times faster

    • @abhishekdas2930
      @abhishekdas2930 4 года назад +3

      He is British.

    • @tyrt400z
      @tyrt400z 3 года назад +2

      I was like "why is he making fun of how he says swap" and then it hit 6:29 and I understood what you were referring to XD

  • @igori1178
    @igori1178 4 года назад

    Thank you so much for your videos. You have a talent to explain things in easy way!

  • @edinburghrules
    @edinburghrules 3 года назад

    Best explanation on RUclips. Thanks for this amazing content.

  • @Nikki-vg2pu
    @Nikki-vg2pu 6 лет назад +9

    Best explanation I've found so far!

  • @krisshore2917
    @krisshore2917 4 года назад +3

    I finally understood after watching this and was able to implement the algorithm. Thank You!

  • @raymonddevries5341
    @raymonddevries5341 4 года назад

    Best explanation of quick sort I have found! Thank you.

  • @sayyidalisajjadrizavi7418
    @sayyidalisajjadrizavi7418 4 года назад

    Your teaching method is really cool, and makes the viewer really comfortable. It's amazing how you write inverted symbols on your side :-D

  • @tannerbarcelos6880
    @tannerbarcelos6880 3 года назад +2

    Clear. Concise. To the point. Will take a few watches but it was so clear and made so much more sense than what was taught in my algorithms class at school , lol.

  • @zheyuanliu4881
    @zheyuanliu4881 3 года назад

    Thank you professor!! This is really clear and understandable, I now understand how partition work and how it works with pivot point.

  • @ibtisam.6309
    @ibtisam.6309 5 лет назад +2

    You're brilliant! Best explanation so far.

  • @ythien7147
    @ythien7147 5 лет назад +3

    Thanks Dr.Edward This video is really clear. I had a hard time in class to understand this.

  • @acemccrae7862
    @acemccrae7862 6 лет назад +3

    Thank you, been trying to understand this for 4 videos including my instructor. Good Job.

    • @ujtelomvan0414
      @ujtelomvan0414 5 лет назад

      All the videos are different. Wtf? Now what?

  • @FLYAEROBOY
    @FLYAEROBOY 5 лет назад +2

    Wow. Best Quick sort explanation. Deserves more views

  • @linlinli2440
    @linlinli2440 2 года назад

    thank you, this is the best quick sort i have seen, thanks.

  • @sudajared
    @sudajared 3 года назад

    Best explanation of quicksort I have found so far

  • @BigMarini
    @BigMarini 5 лет назад +4

    I'm Studying here in Sandiego SouthWestern College, Dr. Edwards you inspire me to transfer over SDSU to finish my Computer Science degree

  • @singsarav
    @singsarav 4 года назад

    Excellent method of teaching. Every one can easily understand

  • @tsukikage
    @tsukikage 4 года назад +8

    This guy is creepily good at writing backwards...

    • @jrhager84
      @jrhager84 3 года назад +1

      I hope you're kidding. lol

    • @tsukikage
      @tsukikage 3 года назад

      @@jrhager84 No? Am I missing something?

    • @tsukikage
      @tsukikage 3 года назад +2

      Oh, did they just mirror the video?

    • @jrhager84
      @jrhager84 3 года назад +2

      @@tsukikage bingo

  • @RicardoBuquet
    @RicardoBuquet 2 года назад

    This is the best explanation I have seen so far.

  • @twerkyfingers
    @twerkyfingers 3 года назад

    This is the best video on quick sort!

  • @ramonaichim5150
    @ramonaichim5150 Год назад

    THE BEST EXPLICATION FOR QUICKSORT!! THANKS

  • @pacodinorin4577
    @pacodinorin4577 3 года назад

    This was the best way to learn it, I'm Mexican and my teacher is so bad, thanks to you teacher Rob

  • @SageofToads
    @SageofToads 6 лет назад +1

    Best quicksort video ive seen.

  • @majuran
    @majuran 4 года назад

    Best video...... finally understood the concept... thanks sir

  • @seankalbak544
    @seankalbak544 5 лет назад +2

    Well done and nice job with the reverse writing. That made the video really viewer friendly.

  • @omarabdelkader5214
    @omarabdelkader5214 5 месяцев назад

    Thank u for ur great explanation, got it from the very first time

  • @johnyhawkahsan
    @johnyhawkahsan 5 лет назад

    Awesome!
    Very short and to the point.

  • @connorjones6896
    @connorjones6896 6 лет назад

    Thankyou! you made this concept easy to grasp

  • @bzavolovich
    @bzavolovich 2 года назад

    Thank you for this wonderful explanation!

  • @andrewryabchenko2407
    @andrewryabchenko2407 2 года назад

    Thank you! Its a great mini lecture)

  • @__kpsingh__
    @__kpsingh__ 3 года назад

    This should be at the top of the search list.

  • @jorgericaldi6438
    @jorgericaldi6438 6 лет назад

    Greetings from Peru. Awesome videos!

  • @jakubfraczek1208
    @jakubfraczek1208 Год назад

    Very good explanation! Thank you very much :D

  • @user-tc4hs2hr9p
    @user-tc4hs2hr9p 6 лет назад

    Very good lessons. Thank you!!!

  • @travel_with_dimpi
    @travel_with_dimpi 5 лет назад

    Great explaination and u r sophisticated person

  • @user-ym5vn8pm8i
    @user-ym5vn8pm8i 6 месяцев назад

    SUPER HELPFUL!!! THANK YOU SO MUCH

  • @stelity
    @stelity 5 лет назад

    Thanks, this made it so clear.

  • @tamborelconejo
    @tamborelconejo 3 года назад

    best explanation I saw so far

  • @foodandmoney
    @foodandmoney 5 лет назад

    Excellent explanation.

  • @prabhakarpalanivel6472
    @prabhakarpalanivel6472 4 года назад

    Thanks.
    Notes: Partition algorithm at around 5:00

  • @HenriqueErzinger
    @HenriqueErzinger 4 года назад

    Great video. I was a bit skeptical when you mentioned your reasoning to pick the mid point as the first pivot in a randomly sorted list, but at the end it was a misdirection. The only thing I would add is maybe a bit of pseudo-code, since it might be better to demonstrate the recursiveness.

    • @Brandon-oo1qi
      @Brandon-oo1qi 4 года назад

      Why would you be skeptical of choosing the middle as the pivot? That's literally the best possible outcome, lol! Unless your goal is worst case O(n^2) you should always choose the middle unless you know something about the list (as in some special case where it's always x).

  • @norvusordoseclorum
    @norvusordoseclorum Год назад +1

    You can tell dropping that lid really bugged him

  • @sanjeevkumarsen4838
    @sanjeevkumarsen4838 2 года назад

    Superb explanation 🙏🙏

  • @xiaofan9102
    @xiaofan9102 3 года назад

    beautiful explanation!

  • @short_cut_hub
    @short_cut_hub 4 года назад

    Thank you sir
    Great work😊

  • @chandramohannegi
    @chandramohannegi 5 лет назад

    best quick sort thanks

  • @8971felix
    @8971felix 4 года назад

    Excellent explanation

  • @ruicsf
    @ruicsf 3 года назад

    Thank you!

  • @madhatshahda4179
    @madhatshahda4179 Год назад

    really great work . It felt like listening to the John Danaher of sorting xD

  • @FredoCorleone
    @FredoCorleone 5 лет назад +2

    This guy is awesome, I'm learning sorting algorithms thanks to him. One day baby I'll be sorting integers at Microsoft!
    _function quickSort(array) {_
    _if (array.length

    • @mandolinic
      @mandolinic 5 лет назад

      In practice, the number of times you ever need to sort a list of pure numbers is small. It's far more common that you need to sort some structured data, where there's some item within the structure that is the sort key. When I started programming 40 years ago, it was reasonably common to hand code a sorting algorithm for some application, now every modern language comes with a Quick sort algorithm that you no longer need to worry about. How it works is of purely academic rather than practical interest.

  • @daisyrocha2808
    @daisyrocha2808 4 года назад

    Very helpful, thank you! :)

  • @chigoziea.991
    @chigoziea.991 5 лет назад

    I do have to say this algorithm is just slightly different than some other youtube videos :P. Great video!

  • @ajai.a2374
    @ajai.a2374 6 лет назад

    thank you

  • @abdellatifsraiti2032
    @abdellatifsraiti2032 4 года назад

    THANK YOU

  • @jameskoh3463
    @jameskoh3463 2 года назад

    I would give 10 likes if I can for this video!
    Very well explained! Thank you!

  • @_dc_universe
    @_dc_universe 4 года назад

    great sir!! KEEP IT UP!

  • @nikomiller6168
    @nikomiller6168 3 года назад

    Using the last element as a pivot is necessarily not a good option if there is even a slight chance that the list could be (nearly) sorted. A good option for pivot selection is the median-of-three method in which you choose the median of the first, middle and last element of the list as your pivot. This leads to efficient behaviour for all inputs.

  • @MuntahaZad
    @MuntahaZad 4 года назад

    Thanks a lot!
    Also for no annoying music!

  • @hujake5406
    @hujake5406 4 года назад

    THANK YOU SIR

  • @Brlitzkreig
    @Brlitzkreig 2 года назад

    Quite unruffled after the pen lid dropped. Very cool

  • @fireflies15
    @fireflies15 5 лет назад

    good one. thanks a lot

  • @amphivalo
    @amphivalo 7 лет назад

    Thanks

  • @YiANgO5
    @YiANgO5 4 года назад

    Best explanation

  • @Maen963
    @Maen963 4 года назад

    BEST OF THE BEST !

  • @reynaldoruizflores
    @reynaldoruizflores 3 года назад

    How can we exactly count the number of comparisons? I establish a counter for 10000 number am I obtain 9999. If I consider the recursion -1 each time the numbers goes to 12K. Depending of the start or end or media election differs too.

  • @jaroslawpiwar5811
    @jaroslawpiwar5811 2 года назад

    Geniusz dydaktyczny. Brawo.

  • @mohamedelkony4780
    @mohamedelkony4780 4 года назад

    Amazing

  • @tahirmahmood1721
    @tahirmahmood1721 4 года назад

    Describe precisely the pivot step of QuickSort, using the median-of-three method for
    pivot selection, and show every stage of the rst pivot step applied to the array with the
    following entries:
    3; 4; 7; 1; 2; 6; 5

  • @sathwikchintalapudi1243
    @sathwikchintalapudi1243 4 года назад

    Nice video thanks

  • @pfever
    @pfever 3 года назад

    4:08 if the numbers are randomly sorted then, any number in the list has the same probability of being in the middle of the sorted list... so you could just pick the number of the very right no? Edited: 8:38 lol he answered my question by the end of the video :)

  • @JoffreyB
    @JoffreyB 6 лет назад +6

    i can't get, what is the second part about?

  • @xoxoo4877
    @xoxoo4877 5 лет назад

    Great

  • @akruijff
    @akruijff 2 года назад

    8:50 yes, but if the list is sorted, then the middle is better.

  • @jidejaydee
    @jidejaydee 3 года назад

    am too lazy in writing a comment but this tutorial made me do that! THANKSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

  • @jonathansimons2368
    @jonathansimons2368 6 лет назад

    is he implying that the middle number of an unsorted list is better than any other as a pivot choice as it is likely to be nearer the median than the others?

  • @isaacdouglas1119
    @isaacdouglas1119 4 года назад +2

    3:41 wouldn't you have to quicksort one more time since it's not guaranteed at that point that the remaining list is sorted? The list could still be [12, 11] instead of [12, 14] at that point.

    • @RickAstley1988
      @RickAstley1988 3 года назад

      That's the only problem in quick sorting, but it happens rarely that's why quick sort is being used mostly

    • @isaacdouglas1119
      @isaacdouglas1119 3 года назад

      Kurt Weyne Gaso don’t think that’s a problem with the algorithm itself they just forget the last iteration

    • @sinify6676
      @sinify6676 3 года назад +1

      @@RickAstley1988 i don't think people use "sorting algorithms" with small chances to just return unsorted data..

  • @JoffreyB
    @JoffreyB 6 лет назад +5

    but what about array of |8|10|7|12| , out pivot is |12|, i and j counters in this case will go together until the end, coz all elements are smaller than pivot. And in the end we should switch |7| with |12|, isn't it? but we will get then |8|10|12|7| , which is far from true. Somebody explain me please this moment

    • @noelthomasbejoy3089
      @noelthomasbejoy3089 5 лет назад

      Watch the vid agin .we skip through the i(update it by 1) when element(i)>pivot.so swaps take place before pivot and element(j )swap.

    • @mrmrigank7154
      @mrmrigank7154 5 лет назад

      Actually in that case counter who is remembering current posn will remain at 8 and other counter which is finding 1st element greater than 12 will iterate and end the array nothing will happen. And in next step you will send arr 8 10 7 in recursion and 12 in recursion

    • @911wildman911
      @911wildman911 5 лет назад

      I believe I've found an answer here, having encountered the same confusion when reviewing this myself. When you have this scenario, you simply do not perform a swap at the end. The final value before the pivot value is considered to be in its "sorted" position. From there you can mark the final value sorted and continue the process with a new pivot.

  • @sandyjust
    @sandyjust 3 года назад

    So the swapping of 6 and 8 is not required. Just use the last element in the list. I think this is the inplace quick sort using Lomuto partition schema.

  • @Sgoose105
    @Sgoose105 4 года назад

    The sound made between the pen and the glass...

  • @MegaRc1989
    @MegaRc1989 6 лет назад +82

    how are you writing backwards!?

    • @yasahanzengin3329
      @yasahanzengin3329 6 лет назад +6

      He's writing on a glass.

    • @phillippebr
      @phillippebr 6 лет назад +25

      They are filming a mirror. He is writing normally in a glass (so everything is backward) and they are filming a mirror pointed to it (making it forward again).

    • @hussainm8407
      @hussainm8407 6 лет назад +61

      or theyre just flipping the video in post

    • @FlamAble94
      @FlamAble94 5 лет назад

      @@hussainm8407 BAHAHA xD

    • @mahmoudnadi1992
      @mahmoudnadi1992 5 лет назад +1

      sorcery

  • @number1neek
    @number1neek 3 года назад

    The comments here:
    🤯 I was much more amazed by how he was able to disappear and then reappear in almost the same place!
    Then I realised, this must be what recursion is...
    I am learning!

  • @vishal24000
    @vishal24000 3 года назад +1

    'crystal' clear.

  • @Jagadishkumar4646
    @Jagadishkumar4646 4 года назад

    First value is taken j last value is pivot is taken if first value j is less then pivot what we do and i is taking increment to the j

  • @halcyonramirez6469
    @halcyonramirez6469 4 года назад

    I don't understand 5:18. what if it wasn't a 10 but a 1? where would you swap that to?

  • @911wildman911
    @911wildman911 5 лет назад

    Something does not appear to be correct here or maybe I am misunderstanding. With the 8, 10, 7, 12 sort you would do if you had continued this example, all the elements are less than the pivot (12). Your blue/orange counters would stay together until the end, resulting in a swap of 7 and 12, resulting in 8, 10, 12, 7. This is not correct. Is there some gotcha or small detail here that I am missing in which the result would come out correct? Thanks!

    • @bobhutchinson3638
      @bobhutchinson3638 4 года назад

      >resulting in a swap of 7 and 12
      You would end up with swapping (12 with 12) nothing BUT! You would have a new pivot winch is 3(12). End the next iteration would be:
      leftSort(0, 3 - 1),
      rightSort(3 + 1, 3)

  • @knightyang1561
    @knightyang1561 5 лет назад +4

    I still don't understand why choose the middle number as pivot point and then swap it with the end number in the almost sort list? Am I miss something?

    • @icosmini
      @icosmini 5 лет назад +1

      That is confusing, he shouldn't have said that. You actually simply choose the last number as pivot. And you do that so that you can freely move all the other numbers around.
      And then at the very end, when you have the set of small numbers and the set of large numbers, you put the pivot between the two sets.

    • @mrmrigank7154
      @mrmrigank7154 5 лет назад +2

      @@icosmini it is not confusing actually you can chose any number as a pivot, then have to swap it with the last one ,, choosing last one as a pivot is convenient . pivot means here that you have to place this element at its right place and left elements must be smaller and right must be bigger

    • @mrmrigank7154
      @mrmrigank7154 5 лет назад

      right place means where it should be .

    • @ahmidahmid9303
      @ahmidahmid9303 5 лет назад +3

      that will help alot if you sorting nearly sorted set where there will be less swaps mostly if you use the mid number

    • @huynhat50
      @huynhat50 5 лет назад

      middle is for the meaning, the last is for the implementation