Insertion Sort vs Bubble Sort + Some analysis

Sdílet
Vložit
  • čas přidán 1. 08. 2024
  • A visual demonstration of insertion sort, competition with bubble sort, and performance analysis including these two and quick sort.
    See more notes and a more accurate analysis of the algorithms performance:
    www.udiprod.com/insertion-sort/
    Previous matches:
    Heaps sort vs merge sort
    • Heaps and Heap Sort
    Merge sort vs quick sort
    • Merge Sort vs Quick Sort
    Quick sort vs bubble sort
    • Visualization of Quick...

Komentáře • 309

  • @i_teleported_bread7404
    @i_teleported_bread7404 Před 4 lety +656

    Leave Bubble Sort alone, it's trying it's hardest.

    • @no-one-1
      @no-one-1 Před 3 lety +52

      At least it has a brain and eyes unlike Bogosort

    • @feritperliare2890
      @feritperliare2890 Před 2 lety +30

      bogosort has eyes to check if he succeeded but it just basically throws the marbles to the ground than vaguely decides their order and than checks if it succeeded

    • @Pihsrosnec
      @Pihsrosnec Před 2 lety +5

      @@no-one-1 hey, bogosort has a very karge brain. By that I mean it uses more to do the same thing because randomly sorting something is actually kinda resources intensive

    • @lovermillion
      @lovermillion Před 2 lety +3

      Bubble Sort is still useful! As long as you only care about the largest/smallest element in a set, that is

    • @ru2979
      @ru2979 Před rokem

      😂😂

  • @SuperfieldCrUn
    @SuperfieldCrUn Před 5 lety +581

    HOLY SHIT did you just clearly explain the concept of N operations and how they grow as the input grows using graphing based on a clear visual metaphor?!?

  • @udiprod
    @udiprod  Před 6 lety +647

    Thanks everyone again! I wish I could upload more frequently. There are already some new ideas brewing. I hope I'll get to working on it soon. But yes, it will take some time again :)

    • @coolmdj111
      @coolmdj111 Před 6 lety +24

      Hi udiprod... Let me just say, I like your explanations and how simple you make things to understand. I'm curious as to why you're not moving towards expanding your production and making your videos more frequent. _Patreon_ could help a lot and I for one would really look forward to more stuff from you.

    • @eggpling
      @eggpling Před 6 lety +7

      Love the content, wish it could happen more often! But time and life and whatnot. Though... I want an explanation on how Radix Sort works... because it doesn't do comparisons (right?).

    • @tobivan3190
      @tobivan3190 Před 6 lety +2

      i want to see radix sort, but i don't know if it would fit this format

    • @ayeariola
      @ayeariola Před 6 lety +3

      udiprod how about radix sort and bucket sort and cocktail shaker sort?

    • @taureon_
      @taureon_ Před 6 lety +6

      COCKTAIL SHAKER SORT

  • @TheGeneralThings
    @TheGeneralThings Před 6 lety +789

    The analysis at the end...
    You just made one of the best videos on sorting on CZcams.
    Please make more analyses when you have the time. We'll be patient ❤️

    • @meenaljain3828
      @meenaljain3828 Před 3 lety +3

      Still there are 31 fools who unliked the video

    • @weegeenumberone2
      @weegeenumberone2 Před 3 lety +1

      @@meenaljain3828 Ahem, 36 fools.

    • @maybej
      @maybej Před rokem

      @@meenaljain3828 disliked*

    • @clown6930
      @clown6930 Před rokem +1

      @@meenaljain3828unliked????? 😭😭💀

    • @Manny73211
      @Manny73211 Před rokem

      honestly insertion sort, by the looks of is, is just a backwards bubble sort. I still have no clue, since I don't know EXACTLY how bubble sorts work yet. can someone please link the video?

  • @kauhanen44
    @kauhanen44 Před 6 lety +325

    This is the best video on sorting I've seen on this channel. The part where you analyzed the speeds of the algorithms was very clear and concise.

  • @ditrixgenesis781
    @ditrixgenesis781 Před 5 lety +340

    I remember in my CS class being told that nlog (n) is the most efficient path for computers to take. Now I know why

    • @zeronothinghere9334
      @zeronothinghere9334 Před 4 lety +47

      Sorry to butt in. But: You know why nlog(n) is better than n^2, but you don't know why nlog(n) is the most efficient. I could claim that there is an algorithm that can do it in n time, and you would not be able to prove me wrong.
      __
      In the model that is used in the video (compare comparisions done of whole objects), nlog(n) indeed is the shortest possible time (you can prove that by considering all the possible permutations, and mapping them on a decision tree). However, if you consider a different model, the RAM model, you are able to sort integers in near linear time (in just n). This sorting algorithm is called Radix sort.
      __
      Please don't take offense to this, I just want to avoid you from possibly misunderstanding what you think you know.

    • @TheShinySnivy
      @TheShinySnivy Před 3 lety +8

      But O(n) is the best algorithm?
      An average of O(n) isn’t found in sorts though, if I recall correctly.

    • @ZachGoethel
      @ZachGoethel Před 3 lety +22

      @@TheShinySnivy Radix sort is non-comparative but achieves linear runtime complexity. It can do so because it has access to the digits of the values being sorted (rather than only a less-than, greater-than, or equal-to). It's essentially a count sort, but performed multiple times to count sort by each digit (base-10) or other radix (like base-256).

    • @Ascyt
      @Ascyt Před 3 lety +1

      stop u make my brain hurt

    • @romannasuti25
      @romannasuti25 Před 3 lety +9

      O(n log(n)) is the best you can do given comparison sorts, where the sorting algorithm only has information on greater, less than, or equal to.
      Given most data has some sort of absolute order (not only larger than, but by exactly how much), you can achieve O(n) by using a counting sort.
      Say you're sorting an array of thousands of elements, but they're all numbers from 0 to 9. The easiest way to sort them is actually to just count how many 0's, 1's, and so on until you've gotten to 9, then put out as many 0's as is counted, then 1's, and so on.
      Radix sort is just a way to make counting sorts space-efficient: Instead of scaling linearly with the number of possible values (256 for an 8 bit int or char, 65536 for a 16 bit int, and over 4 billion for a 32 bit int), it scales logarithmic-ally which is much better. Even better, radixes require almost no cross-communication (after all, no comparisons) with a very simple way to combine the results of multiple radix sorts (just add all the counts together), making them very easy to scale across potentially thousands of computers (perfect if you were trying to sort trillions of items across an enormous Cassandra or HBase cluster).
      Basically, if you were doing a 32-bit integer, instead of keeping over 4 billion counts, you keep 4 sets of 256 counts, one for each 8 bits. It's cumbersome to explain, but the core of it is a piecewiise counting sort using prefix sums to make it work.

  • @silviamayo2993
    @silviamayo2993 Před 6 lety +43

    I love math and sorting and the intellectual part of this...but I also just love watching the little robots pick up those balls and bring them up to analyze them two at a time...all the little competitions are so cute, while at the same time being incredibly educational.

  • @halfnwhole751
    @halfnwhole751 Před 5 lety +317

    Can you make a vid about Gravity sort?
    I kinda wanna see a robot doing magic tricks :)
    Also please make a video about Langtons Ant? :D
    Also Counting Sort plz😀

    • @SonicPman
      @SonicPman Před 5 lety +19

      Then I guess we just represent the objects with numbers then.

    • @SendarSlayer
      @SendarSlayer Před 5 lety +33

      @@metachirality Not really sorting objects here, sorting by darkness. That's a number

    • @CyberQuickYT
      @CyberQuickYT Před 4 lety +3

      Also drinkshaker would be cool

    • @KnakuanaRka
      @KnakuanaRka Před 4 lety +2

      The Tutorials You mean cocktail shaker? I’m pretty sure that’s basically the same as bubble sort, but it scans back and forth across the list of numbers instead of going in the same direction each time.

    • @h3nry_s71ckm1n
      @h3nry_s71ckm1n Před 4 lety +1

      @@KnakuanaRka Cocktail Shaker Sort is just faster than Bubble Sort

  • @rajmadheshia8791
    @rajmadheshia8791 Před 6 lety +104

    Analysis part in this video is great....
    please add this part in every future videos.

  • @epsilonthedragon1249
    @epsilonthedragon1249 Před 6 lety +56

    A new udiprod video on sorting! I love these videos.

  • @DiThi
    @DiThi Před 6 lety +17

    This explains nicely some reasons behind Timsort, which uses insertion sort for tiny parts and merge sort for bigger parts.

    • @groszak1
      @groszak1 Před 5 lety +4

      also when merging it can recognize large parts that are in one list but not the other and be adaptive to it

  • @Flamehazard
    @Flamehazard Před 5 lety +15

    These videos are so awesome, the sorting mechanics are so interesting, plus, the low poly looking models, along with the lesser texture quality really gives it a charm.

  • @katlicks
    @katlicks Před 3 lety +7

    These are absolutely amazing. I've been watching sorting algorithms for a while now but never really grasped how someone could devise the algorithms, but with the visualization, it's far more simple than what I was making it out to be.

  • @nmmm2000
    @nmmm2000 Před rokem +3

    Thanks for including the "map" of comparisons. Watched the video several times during the years and every time finding something useful.

  • @nullivory
    @nullivory Před 6 lety +46

    following channels you think are dead pays off

  • @dhanarsantika
    @dhanarsantika Před 6 lety +59

    Finally udiprod make another video :D

  • @ydz8342
    @ydz8342 Před 4 lety +4

    I just want to thank you for making the best sorting algorithm videos I have ever seen!
    Also, the analysis part is brilliant!

  • @o-k9267
    @o-k9267 Před 5 lety +1

    Just got your channel in recommended and I must say one of the most comprehensible visualizations I've ever seen! I noticed you've not uploaded new videos for a long time, I hope this isn't the end. Best wishes!

  • @alexanderthomas-owen613
    @alexanderthomas-owen613 Před 6 lety +2

    I've learnt more from these little sorting videos than I did in about three lessons of Computer Science. Good work!

  • @noahkilgus9860
    @noahkilgus9860 Před 4 lety +1

    These sorting videos are by far my favorite videos I've ever seen

  • @edems131
    @edems131 Před 6 měsíci +1

    BEST video on algorithms i found yet, LOVE IT

  • @The-pf4zy
    @The-pf4zy Před 6 lety +11

    I can't wait for Radix Sort (LSD)! That sort is my favorite.

  • @juice8960
    @juice8960 Před 6 lety +3

    I love how these videos could help do every day lives especially for sorting

  • @rohangh3577
    @rohangh3577 Před 3 lety +1

    I think this video is among the best videos on the internet, and it also shows that it's not only animations that make the video best, it is the mind behind it.. orz

  • @MrLuigiBean1
    @MrLuigiBean1 Před 2 lety +1

    That graph visualization at the end was ABSOLUTE GENIUS!

  • @coruscaregames
    @coruscaregames Před 2 lety +6

    Can you demonstrate a competition "rigged" in the underdog's favour? ie. Bubble sort vs merge sort on an almost sorted list, heap sort vs quick sort but you get half the balls now and half the balls when you're done with that, etc

  • @jl-fy3zj
    @jl-fy3zj Před 4 lety +33

    "You want Radix LSD?"
    "I want Base Ten!"
    "YOU CAN'T HANDLE BASE TEN!!!"

    • @Kumquat_Lord
      @Kumquat_Lord Před 4 lety +2

      Base 10: AAAAAAAAAAAAAAAAAAAAAAAHHHHHHHH

    • @jl-fy3zj
      @jl-fy3zj Před 4 lety +1

      All I want is a few good ten

    • @4te-9
      @4te-9 Před 4 lety +2

      Base 16: let me introduce myself

    • @segaking5846
      @segaking5846 Před 4 lety

      In-Place base 10: Ahem.

  • @neyraxstuff-inactive7624
    @neyraxstuff-inactive7624 Před 6 lety +1

    Yes I was waiting for this. I really liked the previous parts so I want to see one about insertion. Thank you :)

  • @athinaej
    @athinaej Před 2 lety +2

    this was LIFE CHANGING. NEVER have my eyes witnessed such beauty before this glorius day. thank you. for everything. 😘😘

  • @hil449
    @hil449 Před 2 lety

    jesus christ this is amazing! Every cs student SHOULD watch this video series, its so awesome!

  • @tuftman6092
    @tuftman6092 Před 6 lety +2

    I wish i could give two thumbs up, the explanation of the sorting time was superb

  • @jpbling8344
    @jpbling8344 Před 6 lety +4

    This is so relaxing and fun!

  • @FluffyPrincess888
    @FluffyPrincess888 Před 2 lety +1

    You sound like a combination of a caring mother and a patient math teacher. I like it. Especially because of how I'd want a teacher like this. I have ADHD.

  • @mfaraday4044
    @mfaraday4044 Před 4 lety +1

    Best channel for sorting algo

  • @_danzo7
    @_danzo7 Před 5 lety +1

    Wow guys u put a lot of effort on ur vids i really appreciate that

  • @davidmendoza4521
    @davidmendoza4521 Před 4 lety +11

    I love how all the comments are so supportive and it makes the content even more wholesome

  • @realcygnus
    @realcygnus Před 6 lety +1

    great content as per usual ........more frequent posts & this would clearly be among the "top' channels of its kind.

  • @ronakpatil6081
    @ronakpatil6081 Před 3 lety

    these videos made the boring sorting techniques interesting hats off.

  • @PointToNull
    @PointToNull Před 4 lety +1

    These videos are amazing. Great content!

  • @givlupi2686
    @givlupi2686 Před 4 lety +6

    Imagine this with Bogosort. Insertion sort completes sorting the ten balls after just 30 comparisons, and then starts waiting for Bogosort to get done. Eventually, Insertion starts reading the newspaper, and checks his watch to see that it has been 4 hours since Bogo began. Insertion gets bored and leaves, but comes back the next day, to find that Bogo is still no closer to sorting the balls. 50 years later, Insertion comes back with a bushy white beard, with his grand kids carrying 5 trophies that he won in sorting competitions while he was gone, Bogo is still no closer, even after 50M more comparisons. In 2163, Insertion's great-great-grandson comes back to find Bogo has finally finished sorting.

    • @legendgames128
      @legendgames128 Před 2 lety

      well 50 million is a lot for an average of 3.6 million per solve on average.

  • @vanhsati
    @vanhsati Před 5 lety +1

    Legend says, each year, udiprod will have a day off from work. In this day, he ... :))

  • @sarputhirith9570
    @sarputhirith9570 Před 5 lety +1

    Thank for turning lesson into cartoon for representing the work. The best explanation.

  • @panulli4
    @panulli4 Před 6 lety +3

    First!!!!
    One of the best channels on CZcams!!!!

  • @CGVerseSchool
    @CGVerseSchool Před 6 lety +1

    wonderfull video. explained the log(n) i was always wondering about in terms of performance and scalability of a method.

  • @wesbarnes1682
    @wesbarnes1682 Před 6 lety +1

    Glad to have a new video

  • @manoking9619
    @manoking9619 Před 10 měsíci +1

    This is awesome! These videos are going to carry me throug my algorithms course!

  • @thejbo777
    @thejbo777 Před 6 lety +1

    Yay a video!
    See you next year!!!

  • @sarathm3635
    @sarathm3635 Před 5 lety +1

    finally a video worth my time

  • @yannecks7690
    @yannecks7690 Před 6 lety +3

    I love your videos so much

  • @sylvercritter
    @sylvercritter Před 6 lety +27

    The brawl finally continues...

  • @thegardenofeatin5965
    @thegardenofeatin5965 Před 4 lety +4

    This series is the best content about computing I've found all year.
    I'm curious how these are made. Like, were they hand-animated in something like Blender or are they rigged to a simulation that's actually running the algorithms?

    • @SchadeTree
      @SchadeTree Před rokem +1

      They said in another video that they use Autodesk Maya for their animations. Dunno if they do it by hand or rig it to the actual algorithms, but given the 40 minute bogo sort video I'd guess the latter

  • @ciclop3
    @ciclop3 Před 5 lety +1

    I LOVE this videos, thank you!

  • @Name-ul8es
    @Name-ul8es Před 2 lety

    I was subbed to this channel years ago because the bots looked goofy and the videos were interesting but now I have grown and I am here again to learn and pass collage exams.

  • @kartikiyer3067
    @kartikiyer3067 Před 4 lety +1

    Could you do a video on BOGO sort vs some other sorting algorithm like gravity or insertion sort?

  • @puneetchhabra2578
    @puneetchhabra2578 Před rokem +1

    what an awesome explanation

  • @Filaxsan
    @Filaxsan Před 4 lety +1

    Loved it! Great job!

  • @sandmann6851
    @sandmann6851 Před 6 lety +2

    Well done! big thumbs up

  • @kashishdhawan9966
    @kashishdhawan9966 Před 5 lety +1

    Lovely demonstration

  • @kartikkalia01
    @kartikkalia01 Před 4 lety +1

    This is perfection.

  • @tarunprasad98
    @tarunprasad98 Před 6 lety +1

    Could you please make videos on pointers and self referential structures?

  • @andrewsalmon100
    @andrewsalmon100 Před 4 lety

    Fantastic. Thanks. So this is about AI and computer efficiency. And can it be applied to commercial processes?

  • @pie6
    @pie6 Před 6 lety +1

    Woo Hoo! Finally another video

  • @redjohn1308
    @redjohn1308 Před 5 lety +3

    Can you make a video about selection sort ? The videos are amazing bro .

  • @parjohansson3118
    @parjohansson3118 Před 6 lety +2

    You're alive! You're alive!

  • @rollinontheboard
    @rollinontheboard Před 2 lety +1

    Far better than anything Wikipedia would offer.

  • @Mintice
    @Mintice Před 6 lety +1

    Thanks for the new vid!

  • @jakubkootyo1745
    @jakubkootyo1745 Před 6 lety

    May i suggest smoothsort? Or could you just explain it to me in the reply? Thanks.

  • @Ken-S
    @Ken-S Před 3 lety

    This video should be in every programming 101 education.

  • @abolfazl_rodsarabi2294
    @abolfazl_rodsarabi2294 Před 2 lety +1

    Thank you for your effort...

  • @gysoran
    @gysoran Před 4 lety +1

    hey, this is super helpful, thanks!

  • @jademonass2954
    @jademonass2954 Před 4 lety +1

    are bubble sort and insersion sort the same thing but one backwards?

  • @iwersonsch5131
    @iwersonsch5131 Před 3 lety +1

    If comparisons are costly but swaps are not (or moving multiple items at a time is barely more costly than moving a single item), you can do binary insertion sort to use about O(n*log(n)) comparisons but about O(n^2) swaps. Unlike Quicksort, this doesn't rely on luck since the pivots we are choosing are already in a sorted list.

  • @yoshidude64595
    @yoshidude64595 Před 3 lety +1

    This would be an excellent introduction to big O notation

  • @FraPiz
    @FraPiz Před 2 lety +1

    Great video!

  • @YouB3anz
    @YouB3anz Před 3 lety

    Excellent little vid

  • @patcoston
    @patcoston Před 6 lety +2

    There are many variants to Bubblesort. This video shows one of the most inefficient variants. You can improve Bubblesort performance by sorting in both directions, and keep track of where the last swap occurred to avoid iterating through parts of the array that you know are sorted. You can even sort in both directions within the same loop.

    • @MinecraftLD10
      @MinecraftLD10 Před 4 lety

      Patrick Coston The robots might need some upgrades for that.

    • @typhoonzebra
      @typhoonzebra Před rokem

      I think one of the rules of the scenario is that the robots cannot remember any swap they've made. The only thing they can remember is their sorting methodology.

  • @leejeff7869
    @leejeff7869 Před 6 lety

    it is a really great video to understand algorithm

  • @FlumenSanctiViti
    @FlumenSanctiViti Před 4 lety +1

    How about a video on Timsort, most likely quickest sorting algorithm of them all?

  • @psychologyfacts1718
    @psychologyfacts1718 Před 4 lety +1

    first tym in 4 years I got the concept right love from Pakistan

  • @Periiapsis
    @Periiapsis Před 6 lety +1

    Can you try radix sort? I don't know how that would work with colors, though.

  • @GaneshNayak
    @GaneshNayak Před 5 lety +1

    Super analysis

  • @Micha-Hil
    @Micha-Hil Před měsícem +1

    Insertion sort at the end was just like "so wtf do i do now"

  • @thegallivantinggamers4904

    Next, can you please do Insertion versus selection sort?

  • @pun5925
    @pun5925 Před 4 lety +1

    im oddly addicted to these

  • @Rodric380
    @Rodric380 Před 3 lety

    this is just an art

  • @want-diversecontent3887
    @want-diversecontent3887 Před 6 lety +14

    Places:
    1. Merge Sort (25, 23)
    2. Heap Sort (39)
    3. Quick Sort (21, 33)
    4. Insertion Sort (30)
    5. Bubble Sort (44, 42)

    • @Junieper
      @Junieper Před 4 lety +4

      Nah, QuickSort very slightly outperforms both heap and mergesort. The 33 was due to QS picking bad pivots (on purpose)

  • @thanyou
    @thanyou Před 5 lety +1

    The end of an era. Please come back :

    • @udiprod
      @udiprod  Před 5 lety +2

      Thanks. I'm working on a new video. I hope to release it soon.

    • @thanyou
      @thanyou Před 5 lety

      @@udiprod That's awesome. Can't wait!

  • @AlbySilly
    @AlbySilly Před 4 lety

    How does counting sort work?

  • @danieldelizaur435
    @danieldelizaur435 Před 6 lety +4

    See you next year :D

  • @alexander51413
    @alexander51413 Před 6 lety +26

    Maybe radix sort next time? Great video btw

    • @YaboiMuggy
      @YaboiMuggy Před 5 lety +4

      oh the sorting videos with sounds with radix base 10 get so LOUD

    • @FplusETVChannel
      @FplusETVChannel Před 5 lety +1

      Radix sort is for sorting numbers not colors

    • @bojunchoi6354
      @bojunchoi6354 Před 5 lety +5

      FplusE TV Channel you can easily number the colors

    • @326inminecraft
      @326inminecraft Před 4 lety

      Aaron Luedemann no, it would be something like 190,280,245,346,766,455
      For radix to works, single digit won’t do

    • @toddkes5890
      @toddkes5890 Před 4 lety +1

      @@326inminecraft Radix could work if you translate the colors to binary values. So the darkest color would be 0000, then 0001, then 0010, aso. The lightest color would be treated as 9, or 1001. The question then is using MSD or LSD (MSD would be better, since it would show how Radix uses divide and conquer)

  • @elraviv
    @elraviv Před 6 lety +2

    Loved it!
    however bubble sort is sensitive to the sort direction,
    imagine a case where the largest element is first, and you sort it in the bottom up direction. then you need'll need *N passes* until the top elements will reach the bottom - on the other hand if you sort it from top to bottom you'll need only *1 pass* to sort it.
    this is why if you do use bubble sort, you run it iteratively in both directions.

    • @hyrekandragon2665
      @hyrekandragon2665 Před 5 lety +3

      That's a different sort called cocktail shaker sort also known as bidirectional bubble sort

    • @musicexams5258
      @musicexams5258 Před 2 lety +2

      Bubble sort ran in both ways has its own name
      It is called "cocktail shaker sort"

  • @Joel-id5jq
    @Joel-id5jq Před 4 lety +2

    Thank You !

  • @IAMASTICKSTUPIDPERSON
    @IAMASTICKSTUPIDPERSON Před 2 lety +1

    Can we have tim and intro sort

  • @0Arman0
    @0Arman0 Před 3 lety

    That animation at the end was so legit

  • @murilouco_
    @murilouco_ Před 6 lety

    and the shell sorting?

  • @petersmythe6462
    @petersmythe6462 Před 3 lety +1

    You can also dramatically reduce the number of comparisons insertion sort does by using binary search to figure out where the new item belongs. At least if you're dealing with an array not an LLL. This ends up with O(NlogN) comparisons and easily beats superior sorting algorithms on comparison count.
    however, it does not end up with O(NlogN) total moves but O(N^2). meaning it's still slow.
    One potential optimization would be to move the sorted data into a different data structure. LLLs come to mind since reordering an LLL is free but binary searching an LLL without indexing is an O(N) operation which is too slow.
    One possible solution then is to perform the search on a binary tree, where insertion is not such an inherently costly operation. Of course turns our insertion sort into BST sort but still, now it actually has NlogN performance.

  • @SomeRandomFellow
    @SomeRandomFellow Před 6 lety +1

    HE LIVES!!!

  • @Fitnesslabel
    @Fitnesslabel Před 7 měsíci

    What is really the difference between the two. Both involves comparing the neighbors and swapping

  • @bend4456
    @bend4456 Před 5 lety +2

    i had to watch this for homework!

  • @Saghetti
    @Saghetti Před 5 lety

    Radix sort or counting sort?