Merge Sort vs Quick Sort

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ม.ค. 2014
  • A demonstration of merge sort and a two round competition between merge sort and quick sort.
    See more details here: www.udiprod.com/ms-vs-qs/
    Previous match: • Visualization of Quick...
    Next match: • Heaps and Heap Sort
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 902

  • @sebastianmorataboada9795
    @sebastianmorataboada9795 4 ปีที่แล้ว +4274

    "hey dude what sports do u watch"
    me: *_sweats nervously_*
    thx my folks for the correction

    • @mariafe7050
      @mariafe7050 4 ปีที่แล้ว +51

      me: Sorting algorithms!
      "what"

    • @mariafe7050
      @mariafe7050 4 ปีที่แล้ว +31

      It's been 1 month since I replied but I never noticed the misspelling of 'nerviously'. It's supposed to be 'nervously'. How did I not notic that?

    • @xl000
      @xl000 4 ปีที่แล้ว +3

      said who ?

    • @whiskeyburns5230
      @whiskeyburns5230 4 ปีที่แล้ว +3

      lets play cricket

    • @mryup6100
      @mryup6100 4 ปีที่แล้ว +12

      @Commenter in a Box r/wooosh time!

  • @pelerflyp5398
    @pelerflyp5398 3 ปีที่แล้ว +2970

    “Instead of relying on miracles...”
    Bogo sort: 😥

    • @XPForever
      @XPForever 3 ปีที่แล้ว +23

      XD

    • @astro_cat030
      @astro_cat030 ปีที่แล้ว +8

      its rare

    • @tesseract7586
      @tesseract7586 ปีที่แล้ว +4

      yes that is true

    • @xevento8682
      @xevento8682 ปีที่แล้ว +21

      MiracleSort: 😥

    • @nif0
      @nif0 ปีที่แล้ว +1

      @@astro_cat030 you just don't believe enough

  • @GretgorPooper
    @GretgorPooper 7 ปีที่แล้ว +841

    I skipped class, and now I'm cheering on cute little robots running sorting algorithms. What the hell is wrong with my life?

    • @StevenAkinyemi
      @StevenAkinyemi 6 ปีที่แล้ว +10

      Gretgor LOL
      Everything basically.

    • @GretgorPooper
      @GretgorPooper 6 ปีที่แล้ว +1

      I know that.

    • @zzZAnubisZzz
      @zzZAnubisZzz 5 ปีที่แล้ว

      @@GretgorPooper How wrong is your life now? Doing any better?

    • @daydodog
      @daydodog 5 ปีที่แล้ว +2

      are you at least a compsci student?

    • @bukujuku1541
      @bukujuku1541 5 ปีที่แล้ว +1

      @@daydodog electrical engineering do this aswell

  • @kenners1993
    @kenners1993 7 ปีที่แล้ว +4107

    Can we get bogosort?

    • @udiprod
      @udiprod  7 ปีที่แล้ว +1220

      There's definitely a popular demand for this algorithm, so I'm starting to think seriously about it. May I ask why you are interested in this particular algorithm?

    • @kenners1993
      @kenners1993 7 ปีที่แล้ว +863

      udiprod Just because it would be interesting to see it animated, because it does not work with any rhyme or reason. It would be fun to watch.

    • @udiprod
      @udiprod  7 ปีที่แล้ว +791

      Ok, thanks for the input. I'll certainly think about it.

    • @Dude7469
      @Dude7469 7 ปีที่แล้ว +138

      I think it's about highlighting the part where bogo sort actually fails. Yes, we know the outcome that it doesn't work, but exactly at what point does it fail?

    • @ophello
      @ophello 7 ปีที่แล้ว +237

      Dude7469 it doesn't "fail" so much as it's completely braindead. All it does is shuffle the objects randomly until it gets sorted by complete accident. There's really no point in animating something so stupid. Bogo sort is the worst possible sorting algorithm, but even bogo would eventually, given enough time, accidentally resort the list. If your list only had three items, for example, it would only take a few random shuffles to get it in order. But then imagine reshuffling a deck of cards over and over. You'd be shuffling those cards for billions of years before getting them back into order using bogo sort.

  • @LetsPlayKradnium
    @LetsPlayKradnium 7 ปีที่แล้ว +789

    I watched "We are number one but every "one" is replaced by a sorting algorithm" and now this is all I get in my recommended box

    • @tttc
      @tttc 7 ปีที่แล้ว +11

      It seems lately I keep getting bombarded with recommendations that are somewhat similiar to another videos watched....

    • @AlexVasiluta
      @AlexVasiluta 7 ปีที่แล้ว

      「Look over here!」 we too

    • @josgeerink9434
      @josgeerink9434 7 ปีที่แล้ว

      K

    • @mybloodymemory
      @mybloodymemory 6 ปีที่แล้ว

      holy shit 😂

    • @cutekitty2358
      @cutekitty2358 6 ปีที่แล้ว

      Brilliant

  • @CocoTheMii
    @CocoTheMii 3 ปีที่แล้ว +275

    This is actually a really good way of explaining sorting methods.

    • @vekmogo
      @vekmogo 7 หลายเดือนก่อน +1

      I wanted to see Quick Sort deal with a perfectly sorted list at the beginning lol

  • @ihavetwofaces
    @ihavetwofaces 4 ปีที่แล้ว +588

    I’ve seen multiple visualizations, code implementations, and descriptions of Merge sort before now. I still had almost no understanding of the core mechanic. After watching this video, I understand it perfectly, and see now how simple it is. This is a fantastic visualization. Thank you!

    • @uknownada
      @uknownada 4 ปีที่แล้ว +16

      It's probably because this series of videos shows a practical way these algorithms are done. It's way easier to understand when you actually SEE it happen. You can do all of this in real life. I wish they could do this with the harder to understand sorts, like Gravity Sort.

    • @smaybius
      @smaybius 2 ปีที่แล้ว +2

      @@uknownada Sorts like gravity involve altering the values of items instead of redistributing the items

    • @Eknoma
      @Eknoma ปีที่แล้ว +2

      @@uknownada Gravity sort sorts the elements by by placing beads on the first n poles for each number n in the list, then lets them fall. Simple as that.

    • @antonliakhovitch8306
      @antonliakhovitch8306 ปีที่แล้ว +2

      Merge sort was taught to me with a recursive implementation from the start, and that made it very confusing (no, despite what fans of certain languages will tell you, recursion is not "actually super intuitive and efficient").
      It makes so much more sense when it's first explained like this, and *then* you're shown recursive pseudocode.

    • @smaybius
      @smaybius ปีที่แล้ว

      @@Eknoma You could watch my video on "23 minutes of distributive sorts" and skip to the part with gravity sort. Simplified gravity is also a way of representing gravity sort

  • @Muffinlicioification
    @Muffinlicioification 4 ปีที่แล้ว +76

    the little sound that the balls make when being pushed back on the shelf is satisfying

  • @WeevilLover9000
    @WeevilLover9000 3 ปีที่แล้ว +81

    You know you reached the peak of entertainment when you make videos of sorting robots battling while you narrate it with the voice of someone in a child's learning program

    • @MI-lo2hj
      @MI-lo2hj 3 ปีที่แล้ว +17

      you know your in the peak of depression when your watching 2 robots sort balls

    • @torkakarshiro5170
      @torkakarshiro5170 ปีที่แล้ว +3

      @@MI-lo2hj ...or you are somebody from the nerd corner that wants to understand algorithms.

  • @Kneedragon1962
    @Kneedragon1962 9 ปีที่แล้ว +165

    When introduced to the common sorts, we saw animated demonstrations much like this, with various data set sizes. With small groups, bubble sort is actually quite good. Go to 100+ in a group, and suddenly you see why it's called quicksort. With small groups, quicksort doesn't seem all that clever, but when the group size goes up, it gets very much better.

    • @udiprod
      @udiprod  9 ปีที่แล้ว +23

      You can see in the quicksort vs bubblesort video. Already at 10 elements quicksort is much better than bubblesort:
      th-cam.com/video/aXXWXz5rF64/w-d-xo.html

    • @Kneedragon1962
      @Kneedragon1962 9 ปีที่แล้ว +2

      udiprod Then I think the 'random' group was set up. As a general rule, quicksort isn't that special on small groups. Sometimes, yes, but not consistently. Go to a bigger group, and it's blindingly obvious. It's so much better it's staggering. Also, much is made here of the number of comparisons. That alone doesn't tell the story. It's one part. Bubblesort isn't slow because of comparisons. It's slow because the number of operations is much higher. Comparisons are one operation. Quicksort seems like a somewhat more complicated algorithm, intuition wouldn't tell you how much better it is. Still, thank you for making these and sharing them.

    • @udiprod
      @udiprod  9 ปีที่แล้ว +18

      Kneedragon1962 You are right that on very small groups quick sort's advantage won't be noticed, but on 10 it's already very much noticed. The random permutation wasn't set up.
      You're also right that comparisons is not the whole story. The competition shown in the video is in fact composed of several elements. For example, it takes time for the robots to move from side to side. Interestingly, in the quick-vs-bubble competition, quicksort spends more time on moving, so you can see bubblesort makes more comparisons per-second than quick sort. This effect is sometimes seen in real life as well.
      Thanks for watching and for interesting comments.

    • @antonliakhovitch8306
      @antonliakhovitch8306 ปีที่แล้ว +2

      @@udiprod It would be helpful if, in the description or accompanying discussion, there's a breakdown of what represents what (for us computer nerds). For instance - what about the robot moving side to side? In the video, it seems like it's at a constant velocity, but really one would expect to see constant *travel time* (or a far more complex pattern if the dataset is bigger than the L1 cache). Clarifying the assumptions made and whatnot (just a little bit beyond what's in the discussion) would be helpful.

    • @ashutoshmahapatra537
      @ashutoshmahapatra537 ปีที่แล้ว

      @@antonliakhovitch8306 agree!

  • @happycord3613
    @happycord3613 5 ปีที่แล้ว +1721

    *"remove the darker one"*

  • @da_bes
    @da_bes 8 ปีที่แล้ว +1212

    how did i get here

    • @einsteinsemut
      @einsteinsemut 7 ปีที่แล้ว +4

      lol , ikr

    • @aurelia65536
      @aurelia65536 7 ปีที่แล้ว +4

      Sflot
      Yes you did, you friccin moron.

    • @KEL5isGodrules
      @KEL5isGodrules 7 ปีที่แล้ว +1

      oh fricc

    • @lelcat8414
      @lelcat8414 6 ปีที่แล้ว +12

      It was recommended because enough people liked this video who also liked other videos with some qualities similar to other videos you have watched and liked.
      The process is called collaborative filtering, which is a machine learning algorithm that infers some abstract features of a video from correlation of user preferences, and uses those features (and your preferences) to characterize you as a user.
      (It is also possible that the recommendation system is content-based, i.e. meta-data associated with this video is similar to other videos you have liked or watched recently.)

    • @mariafe7050
      @mariafe7050 5 ปีที่แล้ว

      Because you clicked here dummy

  • @pangpengmaster
    @pangpengmaster 8 ปีที่แล้ว +1057

    This is so cute.

  • @Uejji
    @Uejji 7 ปีที่แล้ว +230

    The nice thing about quicksort is that once the nth pivot is correctly positioned, a 2^n-1 additional robots can be brought in to help with the sorting. As long as they stay partitioned by the positioned pivots, they will not interfere with each other.
    (This of course approximates parallelized sorting using quicksort)

    • @AlexanderPavel
      @AlexanderPavel 7 ปีที่แล้ว +53

      Uejji Mergesort can also be parallelized at the beginning and only needs to drop to single threaded in the end, kind of like quicksort but in reverse

    • @groszak1
      @groszak1 5 ปีที่แล้ว +6

      @@AlexanderPavel and bitonic sort can always be parallelized

    • @MinecraftLD10
      @MinecraftLD10 4 ปีที่แล้ว +2

      Uejji Except will robot A like robot B messing with his desk? I think not.

  • @deyannick
    @deyannick 9 ปีที่แล้ว +39

    Studying computer sciences, I wished I had seen this video before, didn't really understand merge sort only by code, but this makes everything perfectly clear!

  • @TheRealTRackard
    @TheRealTRackard 8 ปีที่แล้ว +1766

    What an odd way to teach programming concepts.

    • @dcs_0
      @dcs_0 6 ปีที่แล้ว +190

      it works though! :D

    • @abandoned7501
      @abandoned7501 5 ปีที่แล้ว +323

      What an even way to teach programming concepts.

    • @Chowow
      @Chowow 5 ปีที่แล้ว +15

      At least we get it

    • @bigdoggetom6549
      @bigdoggetom6549 5 ปีที่แล้ว +27

      Especially if the language you use just has array_sort as a function and no other choice

    • @gstkrr8
      @gstkrr8 5 ปีที่แล้ว +93

      odd? what the hell.. you will never find another more clear explanation about sorting...

  • @HallidayASR
    @HallidayASR 7 ปีที่แล้ว +752

    • @user-ll7kq7ne4d
      @user-ll7kq7ne4d 6 ปีที่แล้ว +1

      me too

    • @mariafe7050
      @mariafe7050 5 ปีที่แล้ว

      Donovan A S R Which match?

    • @dancingbread7015
      @dancingbread7015 5 ปีที่แล้ว

      Same

    • @sangramjitchakraborty7845
      @sangramjitchakraborty7845 4 ปีที่แล้ว +6

      I was Q team. I love how simple quicksort is.

    • @dv_xl
      @dv_xl 4 ปีที่แล้ว +2

      @@sangramjitchakraborty7845 I think most people would say merge sort is conceptually simpler than quicksort

  • @JTX8000
    @JTX8000 7 ปีที่แล้ว +214

    instead of hoping for miracle, it indirectly implies to bogo

    • @MiguelX413
      @MiguelX413 6 ปีที่แล้ว

      JTX8000 xd

    • @Fif0l
      @Fif0l 4 ปีที่แล้ว

      Bongo*

    • @AeroTheVaporeon
      @AeroTheVaporeon 4 ปีที่แล้ว +7

      @@Fif0l bogo sort actually. OH YOU LIKE SORTING? NAME EVERY *_S O R T_*

    • @anhbui-bc4ew
      @anhbui-bc4ew 3 ปีที่แล้ว

      @@AeroTheVaporeon cheeseburger sort

  • @aalforhad
    @aalforhad 9 ปีที่แล้ว +68

    your method of explanation is amazing

  • @Alex-dn7jq
    @Alex-dn7jq 6 ปีที่แล้ว +23

    Windows defragmenter uses merge sort. But instead of having a second shelf (or, in this case, disk) it moves files to the end of the partition, separating them using the empty space between them. That's why a good defragment process requires lots of free space.

  • @campbellmcternan3902
    @campbellmcternan3902 5 ปีที่แล้ว +106

    Video: *was uploaded 5 years ago*
    TH-cam algorithm 2019: *Oooooh yeah he’ll love this randomly*

  • @whyttea394
    @whyttea394 4 ปีที่แล้ว +23

    One of a better explanations I could find online. Great job. Thank you guys!

  • @huyphamuc6372
    @huyphamuc6372 4 ปีที่แล้ว +11

    it's 2019 and I finally found a channel that animates algorithms in such an easy way. Subbed

  • @halfnwhole751
    @halfnwhole751 5 ปีที่แล้ว +209

    2:18 Top 10 Anime Battles

    • @bebel9349
      @bebel9349 4 ปีที่แล้ว +2

      Underrated

    • @bayram00
      @bayram00 3 ปีที่แล้ว

      LMFAO

  • @tsumikiminiwa4603
    @tsumikiminiwa4603 3 ปีที่แล้ว +40

    I'd actually be interested in a multi threaded comparison of this and quick sort.
    Merge sort can multitask at the start (when it's just very small subsequences) to merge while quick sort can multitask at the end (because things have been partitioned)
    How would they compare in best, random, and worst case permutations?

    • @toddkes5890
      @toddkes5890 ปีที่แล้ว

      Merge would likely do better as Quicksort relies a little upon luck to find a good split for the smaller lists. Smarter Quicksorts will often pass the lowest and highest values of a list, so the recursive call can identify the average between the two values and try to use that to split the list properly. This even splitting doesn't work right if the values are 'clustered' (i.e. a list with two numbers that are less than 100, eighteen numbers that are in 100-200 range, and five numbers that are in the 201-5000 range).
      Radix (MSD) could also benefit from multi-tasking, as each sub-group is then put into its own task for sorting.

  • @barbarabeltran8274
    @barbarabeltran8274 5 ปีที่แล้ว +158

    Merge all the way
    Sees 1st round: NOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!
    Sees 2nd round: YEA BOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

    • @guy7329
      @guy7329 3 ปีที่แล้ว +4

      And now say hello to MULTITHREADING

  • @jamieyang6416
    @jamieyang6416 3 ปีที่แล้ว +1

    This is my FAVORITE out of the search algorithm visualization videos...... the sound of the balls being placed back down is so satisfying
    I come back at least once a year to listen to the sound and watch the intense sorting match lol

  • @ArixZajicek
    @ArixZajicek 8 ปีที่แล้ว +81

    Anyone notice that the blip noise sounds exactly like Starbound's activate computer noise?

    • @xianchen1935
      @xianchen1935 5 ปีที่แล้ว +2

      Omg you're right haha xD

    • @mozarteanchaos
      @mozarteanchaos 3 ปีที่แล้ว +2

      maybe it's a stock sound effect?
      either way, pretty interesting.

    • @nathancollins1715
      @nathancollins1715 2 ปีที่แล้ว

      Pretty sure they use it in the Talos Principle too.

  • @japanpanda2179
    @japanpanda2179 2 ปีที่แล้ว +7

    If quicksort chooses, by random, the highest-value unsorted item in the list each time then it literally becomes bubble sort. If it randomly chooses the highest and lowest alternately, it becomes cocktail sort.

  • @3ds12Game
    @3ds12Game 9 ปีที่แล้ว +27

    MORE! Dude! we love this, come on! You know, when you start a channel with "GOOD" videos. then you have to go on!

  • @chauchau0825
    @chauchau0825 4 ปีที่แล้ว +2

    This is by far best way of teaching algorithm I have ever seen in my entire life

  • @OneDirection267
    @OneDirection267 3 ปีที่แล้ว +1

    I’m so glad I found this channel. Makes me fall in love with Programming all over again when I’m losing hope

    • @ricj9594
      @ricj9594 3 ปีที่แล้ว

      Same

  • @sasdagreat8052
    @sasdagreat8052 5 ปีที่แล้ว +5

    I've been trying to understand the merge sort for a few weeks now, but to no avail. Who knew a robot with bowling balls was what I needed to finally get the concept?

  • @vicktorioalhakim3666
    @vicktorioalhakim3666 9 ปีที่แล้ว +10

    I'd favor using merge sort over quick sort, simply because of the deterministic behavior. In one of my projects, I use sorting in a real-time system. Ensuring deterministic behavior is essential for estimating the performance and execution times of tasks.

    • @ferociousfeind8538
      @ferociousfeind8538 ปีที่แล้ว +1

      A bit late, but if you need deterministic behavior out of quick sort, have it pick the first element of an unsorted list. Or the last.
      The method of selecting the pivot is not important to it guaranteeing a sorted list at the end, but it may be paramount for sorting very quickly.
      Remember, if quicksort gets lucky and evenly divides the list in half with every pivot, it gets really really good results (not sure how good though), while its worst performance is roughly on par with insertion sort (picking the an element from an unsorted list that goes either at the top or at the bottom of the sorted list, i.e. never splitting the list and only reducing its size by 1 every pass)

    • @Carlos-ux7gv
      @Carlos-ux7gv 9 หลายเดือนก่อน

      Merge sort is guaranteed to be O (n log n) and is a stable sort, while Quick Sort is O(n²) in the worst case.

  • @popop72276
    @popop72276 2 ปีที่แล้ว +1

    i love this, i could watch this all day

  • @nadie-qm8rq
    @nadie-qm8rq ปีที่แล้ว +2

    No matter how many of these videos I watch, I still think these competitions are so funny, like is serious stuff

  • @user-ge6dw8yn1z
    @user-ge6dw8yn1z 8 ปีที่แล้ว +20

    wow.. i could understand sorting algorithms easily. thank you!!

  • @hastley64
    @hastley64 5 ปีที่แล้ว +6

    i wish my teacher explained like this... this video is GOLD!

  • @princebillygrahamkarmoker2122
    @princebillygrahamkarmoker2122 9 หลายเดือนก่อน +1

    best sorting visualization I have ever seen

  • @themachoyoshi
    @themachoyoshi 4 ปีที่แล้ว +16

    On this week’s episode of
    “Why Is This In My Recommended”

  • @Iknowrealtv
    @Iknowrealtv 9 ปีที่แล้ว +96

    You saved my life why couldn't you be my teacher.

    • @wishmaker7863
      @wishmaker7863 7 ปีที่แล้ว +2

      but...isn't that kind of difficult for public school?

    • @Ucefgrb
      @Ucefgrb 4 ปีที่แล้ว

      @@wishmaker7863 is that supposed to be a roast ?
      Cuz I'm not really sure

    • @wishmaker7863
      @wishmaker7863 4 ปีที่แล้ว

      @@Ucefgrb there must have been a longer comment chain that's since been deleted...i honestly don't remember what i meant when writing this.

  • @ajsim
    @ajsim 6 ปีที่แล้ว +7

    Really well done. I love the animations! Thank you

  • @amirhosseinahmadi3706
    @amirhosseinahmadi3706 3 ปีที่แล้ว +2

    What a fantastic video, absolutely top-notch, thank you so much!

  • @Chlocean
    @Chlocean ปีที่แล้ว +1

    I can't process math this quickly, nor does this really mean anything to me pertaining to actual computing, but I'm on the spectrum and this is like the perfect li'l sensory video for my brain.

  • @rob4290
    @rob4290 3 ปีที่แล้ว +3

    That merge sort robot was definitely concerned when the balls started sorting themselves.

  • @SanctuaryReintegrate
    @SanctuaryReintegrate 4 ปีที่แล้ว +30

    I wanna witness the robot for Radix LSD In-place Sort (Base 10)

    • @huyphamuc6372
      @huyphamuc6372 4 ปีที่แล้ว +7

      You kidding? Radix sort isn't based on comparisions, how do you supposed those robots to do?

    • @fuitbythefoot
      @fuitbythefoot 4 ปีที่แล้ว +2

      @@huyphamuc6372 swish em around blindly

    • @smaybius
      @smaybius 3 ปีที่แล้ว +1

      The screen at the front of the table should show which number each ball is, and the robot should make piles for each digit it focuses on, then dumps them back into the list in order. It starts from the last digit, and the process repeats as it works its way up

  • @HerrHoldem
    @HerrHoldem 5 ปีที่แล้ว +2

    Cool channel, I nice to find this
    Your demonstrations are very simple and interesting

  • @ginhoney
    @ginhoney 4 ปีที่แล้ว +2

    I was on the verge of having a breakdown before watching this video (my exam is in 2 days and i still have to cram an entire semester worth of work and i don't understand shit). Thank you for this fun way of explaining this!

  • @wolf0s617
    @wolf0s617 7 ปีที่แล้ว +3

    I never thought learning could be this interesting

  • @hangchen6131
    @hangchen6131 6 ปีที่แล้ว +4

    I love those robots. I hope they can accompany me to my exams.

  • @JiancongXie
    @JiancongXie 2 ปีที่แล้ว +1

    Really nice explanation, never seen more vivid one.

  • @aledagrosa9027
    @aledagrosa9027 10 หลายเดือนก่อน

    I'm new to programming and had problems understanding merge-sorting, how does it work and why it's efficient. Thanks to this video I answered every question in less than 5 minutes
    Thank you, short sighted robots!

  • @michka841
    @michka841 4 ปีที่แล้ว +4

    Top 10 epic anime battles

  • @ZtereoHYPE
    @ZtereoHYPE 4 ปีที่แล้ว +3

    This is actually cool

  • @vanessa0421
    @vanessa0421 10 ปีที่แล้ว +1

    so clear and well illustrated!

  • @kumarnkvc
    @kumarnkvc หลายเดือนก่อน

    I cant believe TH-cam didn't recommend this to me for TEN YEARS!!!.

  • @giruppy
    @giruppy 9 ปีที่แล้ว +5

    Can quick sort be adjusted to shoot for the average pivot? Say it surveys the data it has, finds the min and max, and averages that out and then uses the closest value for its first pivot? I'm sure this has already been thought up long ago - if so, what's it called?

    • @udiprod
      @udiprod  9 ปีที่แล้ว +5

      giruppy Yes, there are all kinds of variants of this type. You can see here: en.wikipedia.org/wiki/Quicksort#Choice_of_pivot
      Actually finding the min and max as you suggest might work, but it will be more costly. An even more costly solution is to actually find the median, which is the optimal choice. There's an efficient way to do it in O(n) time, which yields a quicksort with guaranteed O(nlogn) runtime. But in practice (for reasonably sized n) it works much slower. See here en.wikipedia.org/wiki/Median_of_medians

  • @juanverhook1608
    @juanverhook1608 7 ปีที่แล้ว +21

    Quicksort is much faster in practice, and it is not only because memory consumption is lower but also because by using randomized algorithms you can choose an optimal pivot.

    • @smaybius
      @smaybius 2 ปีที่แล้ว +1

      Regular quicksort is O(n^2) worst case probably regardless of pivot choice. Randomized pivots make it a probably 1 in O(n) chance of it being the worst case. Try finding a good pivot for inputs that involve both halves or each quarter being already sorted and also perfectly linear instead of wrinkly. You're also right in some ways about it being faster in practice, as standard programming languages use it or variants as their default sort and merge sort or variants as their default stable sort. Some like Python only use merge sort or variants. Some variants of quicksort like introsort (default sort of C++ and C#) alleviate the worst case by using heap sort, or Java (at least OpenJDK) uses a dual-pivot quicksort. Partitions can be done by medians or something instead of particular items. There's a small but talented and active group by Musicombo that's dedicated to making sorting algorithms, either for fun or as serious and fast algorithms

  • @vclarke4433
    @vclarke4433 6 ปีที่แล้ว +1

    I love that instant replay on the sorting robots

  • @cameronmoore7675
    @cameronmoore7675 6 ปีที่แล้ว

    These videos are fantastically informative! A video on of big O notation would be greatly appreciated.

    • @smaybius
      @smaybius 2 ปีที่แล้ว

      Both sorts are O(n log n) average case, and it's merge sort's worst case. Quick sort's worst case is O(n^2).

  • @Yellow_Slug
    @Yellow_Slug 5 ปีที่แล้ว +6

    12:30 am and this stuff is exciting...

    • @blitzbigboi7613
      @blitzbigboi7613 4 ปีที่แล้ว

      It's even more exciting at 1:54am

  • @aaroldaaroldson708
    @aaroldaaroldson708 7 ปีที่แล้ว +11

    Is it me or these robots are so cute?

  • @serbianspaceforce6873
    @serbianspaceforce6873 5 ปีที่แล้ว

    these videos are actually very helpful

  • @vivivizion
    @vivivizion 4 ปีที่แล้ว +1

    watching this videos with no sound makes them into surreal mysteries

    • @ItsJJOLO
      @ItsJJOLO 4 ปีที่แล้ว

      O god

  • @sawyannaung3885
    @sawyannaung3885 9 ปีที่แล้ว +11

    It is very helpful for me to visualize them. I hope you could do the same for other algorithms as well. Two thumbs up !! (4 if you want to count toes XD)

  • @aliathif7778
    @aliathif7778 5 ปีที่แล้ว +3

    I dont know what is happening but i kinda like it

  • @ArberKryemadhi
    @ArberKryemadhi 9 หลายเดือนก่อน +2

    Put this series on the tv and boys will cheering on their favorite robots. Fights will be started over wrong predictions.

  • @lordpuff
    @lordpuff ปีที่แล้ว +2

    Me who accidentally saw a couple shorts and vids about sound of sorting and now this is the 10th sorting video today

  • @retpolanne
    @retpolanne 5 ปีที่แล้ว +3

    Where were you when I failed my Data Structures and Algorithms exam?

  • @digtzydogmemechannel5670
    @digtzydogmemechannel5670 5 ปีที่แล้ว +4

    I love the subtle accent of the narrator. There's some accent that she was trained out of but I really want to hear it more...

  • @vintprox
    @vintprox ปีที่แล้ว +2

    I would love to see these as a kid! So fancy.

  • @thegeneralissimo470
    @thegeneralissimo470 5 ปีที่แล้ว +1

    Finally, something that helps you understand what actually goes on

  • @ritik84629
    @ritik84629 5 ปีที่แล้ว +8

    I didn't know that I was starving till I tasted you

  • @fabts4
    @fabts4 8 ปีที่แล้ว +2

    What if you use Quick Sort for the first level and Merge Sort for the others?

    • @udiprod
      @udiprod  8 ปีที่แล้ว +8

      +fabts4 This will create hybrid algorithm whose statistics are somewhere in between that of quick sort and merge sort (e.g., somewhat more comparisons than merge sort, but a little less than quick sort). Usually quick sort is combined that way with another algorithm: insertion sort, since it performs less swaps.

    • @fabts4
      @fabts4 8 ปีที่แล้ว

      +udiprod Haven't seen insertion sort on the chanel...

    • @udiprod
      @udiprod  8 ปีที่แล้ว +4

      +fabts4 Yes, right. I actually plan to do it sometime. Hopefully this year.

    • @JM-us3fr
      @JM-us3fr 6 ปีที่แล้ว

      There's probably a linear time algorithm that can determine if Merge or Quicksort is better.

  • @DominicGo
    @DominicGo 8 ปีที่แล้ว

    This is ADORABLE! I love this 💕

  • @EminoMeneko
    @EminoMeneko 3 ปีที่แล้ว +2

    Very nicely explained. Very nice to watch.

  • @Geoxor
    @Geoxor 9 ปีที่แล้ว +4

    Im your 3000th SUB :DDDDDD

    • @udiprod
      @udiprod  9 ปีที่แล้ว +1

      Thanks! :)

  • @daltonmcghghy9215
    @daltonmcghghy9215 5 ปีที่แล้ว +4

    Nobody:
    TH-cam recommended at 12am:

  • @qingqiong
    @qingqiong ปีที่แล้ว +1

    I didn't care about sort algorithms. I stayed here to watch those cute robots.

  • @wChris_
    @wChris_ ปีที่แล้ว +2

    Merge sort can actually alternate the shelf its using to optimize moving the elements (in addition to the optimization listen in the article). How much would that increase Merge Sort by?
    Actually Merge sort can choose to in-place Merge the first 2 Elements based upon if it would need to move the elements on the last merge again, which would only happen if there is an odd number of recursion steps.

  • @ayeariola
    @ayeariola 6 ปีที่แล้ว +3

    How about radix sort and bucket sort?

  • @alwinpriven2400
    @alwinpriven2400 7 ปีที่แล้ว +7

    guys I think I found a way to make the sorts much faster: fix your robot's short-sightness.

    • @taureon_
      @taureon_ 5 ปีที่แล้ว

      lmao

    • @thehiddenninja3428
      @thehiddenninja3428 5 ปีที่แล้ว

      And what would you do then?
      Look at them all, and put the darkest at the front, and repeat?
      Selection sort.

    • @groszak1
      @groszak1 5 ปีที่แล้ว

      @@thehiddenninja3428 with fixed short-sightness that would be parallel selection sort

  • @tailspikes
    @tailspikes 4 ปีที่แล้ว +1

    Thank you for the great videos!

  • @ChalkTeacher
    @ChalkTeacher 6 ปีที่แล้ว +1

    Wow, this teached way better than on my university back in the day.

  • @lapidations
    @lapidations 5 ปีที่แล้ว +8

    Phew, for a second I thought that merge would win! #teamquick
    Edit: oh no, I celebrated too early

  • @ophello
    @ophello 7 ปีที่แล้ว +3

    You talk like asian reporter Tricia Takanawa.

  • @originalname28
    @originalname28 3 ปีที่แล้ว +1

    My 2021 is off to a great start

  • @diqmond54
    @diqmond54 4 ปีที่แล้ว

    I watched one sorting algorithm video for some reason and now my whole recommended this filled with this

  • @djswillo
    @djswillo 7 ปีที่แล้ว

    EPIC animation work bro ! nice :-)

  • @RiteekaRathod
    @RiteekaRathod 6 ปีที่แล้ว +1

    awesome way to explain algorithm.. :) very well animated. Definitely recommend! (y)

  • @nalankadi1654
    @nalankadi1654 3 ปีที่แล้ว +1

    the match of the century

  • @soup9242
    @soup9242 ปีที่แล้ว +1

    You make sorting algorithms seems like competitors in some obscure Olympics sport.

  • @salemschannel
    @salemschannel 6 ปีที่แล้ว +1

    this is amazing!

  • @noteoracle
    @noteoracle 8 ปีที่แล้ว

    Thanks for the demonstration.

  • @enchufe8609
    @enchufe8609 2 ปีที่แล้ว

    Nicely done!!

  • @VladMarinVlog
    @VladMarinVlog 3 ปีที่แล้ว +1

    GREAT Videos man!!! Thank so much!!

  • @timfjeseth5363
    @timfjeseth5363 ปีที่แล้ว +1

    WE NEED MORE SORTS!

  • @antoinettenaughton6382
    @antoinettenaughton6382 3 ปีที่แล้ว +1

    I think this is an awesome visual representation of sorting. How many screeching line sorts can one watch?

  • @frogdaddystar9694
    @frogdaddystar9694 3 ปีที่แล้ว +1

    You know you're life is failing when you're cheering on a sorting robot

  • @cutekitty2358
    @cutekitty2358 6 ปีที่แล้ว +1

    I love your videos!