Visualizing 70 Sorting Algorithms

Поделиться
HTML-код
  • Опубликовано: 19 июн 2024
  • Full explanation video: • Every Sorting Algorith...
    This video shows off my sorting algorithm visualization program that I made with c++ and sfml. I programmed the algorithms myself in order to properly understand them for the explanation video. For smooth, poplar, wiki, and grail, I didn't have time to program them, so I used ArrayV. The sound effects in this video are mostly musescore samples or audacity generated tones, chirps, etc.
    Chapters:
    0:00 Selection
    0:25 Double Selection
    0:37 Insertion
    1:00 Binary Insertion
    1:14 Bubble
    1:38 Shaker
    2:01 Comb
    2:21 Heap
    2:43 Min Heap
    2:55 Shell
    3:24 Quick
    3:47 Merge
    4:15 Radix LSD (b = 4)
    4:35 Radix LSD (b = 10)
    4:52 Radix MSD (b = 4)
    5:15 Radix MSD (b = 10)
    5:33 Bucket (b = 10)
    6:04 Bucket (b = n/10)
    6:18 Counting
    6:32 Gravity
    6:45 Bogo
    7:08 Pancake
    7:37 Cycle
    8:04 Exchange v1
    8:28 Exchange v2
    8:44 Odd Even
    9:08 Gnome
    9:32 Baiai
    9:55 Circle
    10:12 Patience (cheat version)
    10:42 Strand (cheat version)
    11:19 Bitonic
    11:58 Recursive Bitonic
    12:14 Alternate Bitonic
    12:30 Bitonic w/ Parallel Processors
    12:41 Odd Even Network
    13:16 Pairwise Network
    13:50 Quick LL
    14:26 Dual Pivot Quick
    14:59 Proportion Extend
    15:28 Intro
    16:00 Pattern Defeating Quick
    16:29 Tim
    17:07 Iterative Merge v1
    17:31 Iterative Merge v2
    17:56 In Place Merge (basic edition)
    18:21 Weave
    18:53 Rotate Merge
    19:29 Quad
    20:00 Weak Heap
    20:38 Ternary Heap
    21:21 Smooth
    21:46 Poplar
    22:01 In Place Radix MSD (b = 4)
    22:30 Binary Quick (b = 2)
    22:58 In Place Radix LSD (b = 4)
    23:24 American Flag (b = 128)
    23:40 Spread (b = n/10)
    23:57 Sample (b = n/10, s = 2)
    24:23 Proxmap (b = n/10)
    24:43 Sqrt (Kuvi version)
    25:20 Original Block
    26:03 Wiki
    26:33 Grail
    27:11 Stooge
    27:38 Slow
    28:05 Stalin
    28:15 Miracle
    28:34 Identity Crisis
    29:01 Quantum Bogo
    #sorting #algorithms #computerscience #visualization #satisfying
  • НаукаНаука

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

  • @Kuvina
    @Kuvina  Месяц назад +25

    Explanations: ruclips.net/video/h1Bi0granxM/видео.html
    Which algorithm looks and sounds the coolest?

    • @gamerguyrandom
      @gamerguyrandom Месяц назад +2

      so many piano keys being slammed into my ears i like heap and comb tho

    • @jimiwills
      @jimiwills Месяц назад +2

      Your voice sounds better ❤ Gnome reminded me of pigeon street. I like odd even, and others that maintain variety of pitch throughout... Alternate bitonic.basic in place merge. The actual sound for weave is nice. Identity crisis is obviously the best. Grail sounds like some radio data mode.

    • @shirleyandjessie
      @shirleyandjessie Месяц назад +1

      shuffling

    • @thehipponugget3287
      @thehipponugget3287 Месяц назад +2

      Def Bitonic w/ parallel processors

    • @BenK1122
      @BenK1122 Месяц назад +1

      Grail takes you on a journey. It initially sounds like random noise (because it is). Then it shifts into an almost musical noise and finally shifts to a space laser battle.

  • @A_literal_cube
    @A_literal_cube Месяц назад +125

    There is a version of this video, in which quantum bogo sort actually sorted the list.

    • @GamemodePC
      @GamemodePC 28 дней назад +1

      dont play with quantum bogo sort

    • @charlesmartin1972
      @charlesmartin1972 3 дня назад

      The many words hypothesis is equivalent to the Copenhagen interpretation, which does not need to invoke parallel universes in exchange for observational decoherence; the trick to implementing bogosort in the Copenhagen interpretation is to make any state where the list is unsorted lead to a contradiction, therefore leaving only the sorted list as a possible output. So, doing exactly the same math but interpreting it differently, we save n!-1 universes from certain destruction

  • @rafasr0
    @rafasr0 Месяц назад +16

    I used the Stalin alghorithm to sort 85% of the problems in my company
    Thanks!

  • @ceremyjlarkson9475
    @ceremyjlarkson9475 Месяц назад +85

    My ass was NOT expecting bitonic sort in parallel processors to go as sicko mode as it did

    • @nevverre3500
      @nevverre3500 Месяц назад +6

      Just saw it too! Insane lol

  • @klosbati7321
    @klosbati7321 Месяц назад +58

    RIP the universe

  • @user-yw5et3os6i
    @user-yw5et3os6i Месяц назад +20

    I like that the instrument changes between sorts, they sound nicer than arrayV bip sound

  • @giovannicorso7583
    @giovannicorso7583 Месяц назад +139

    70 algorithm, so wierd. I was expecting something random... maybe 37?

    • @Azyraasr
      @Azyraasr Месяц назад +12

      This is too deep

    • @aidanmaniaMusic
      @aidanmaniaMusic Месяц назад +24

      Veritasium moment

    • @wyattstevens8574
      @wyattstevens8574 Месяц назад +5

      Alternate title: "When Kuvina meets Veritasium"

    • @temmie1662
      @temmie1662 Месяц назад +3

      @@wyattstevens8574and we need vsauce, nilered and styropyro
      Also backyard scientist
      Best collab yet

    • @wyattstevens8574
      @wyattstevens8574 Месяц назад +3

      @@temmie1662 VSauce be like, "37 is random... or is it?"

  • @tali64squared
    @tali64squared Месяц назад +41

    If Mario made a sorting algorithm: 1:02

  • @GoodrichT6
    @GoodrichT6 Месяц назад +33

    Yoooo when's this releasing on spotify

  • @woomiiakarandomveemo5933
    @woomiiakarandomveemo5933 Месяц назад +30

    for some reason i find it super fucking funny that miracle sort doesnt do shit (because it’s waiting for a miracle) and because of that it doesnt even get shuffled identity crisis just comes in and sorts the array for it

    • @VibinSquad
      @VibinSquad Месяц назад +5

      I mean they technically did get a miracle, they just didn’t sort it themselves

    • @NocturnalTyphlosion
      @NocturnalTyphlosion 22 дня назад

      ​@@VibinSquad i guess that makes it bludger sort then

  • @aidanmaniaMusic
    @aidanmaniaMusic Месяц назад +11

    I think rotate merge (18:54) is my favorite. I love all the algorithms that make the little rainbows, but the teleport looking stuff rm does is next level

  • @matroqueta6825
    @matroqueta6825 Месяц назад +9

    I felt an impending sense of doom when I saw quantum bogosort was next...
    so this is what non-existence feels like, huh?

  • @Mordecrox
    @Mordecrox 27 дней назад +4

    6:45 wake up babe new BogoSort type beat just dropped

  • @MeriaDuck
    @MeriaDuck Месяц назад +44

    12:38 blink and you miss it (bitonic parallel)

    • @pranitroy7306
      @pranitroy7306 Месяц назад +7

      bitonic parallel is probably also the flashiest algorithm in this video

    • @justman017
      @justman017 24 дня назад

      And sounds so futuristic 😂

    • @SockerKid
      @SockerKid 6 дней назад

      @@pranitroy7306bogo

  • @dmirtyisakov8112
    @dmirtyisakov8112 Месяц назад +6

    giving pattern defeating quicksort a uniformly random list is just mean

  • @Matyanson
    @Matyanson Месяц назад +4

    My favorite is Insertion sort!
    1) Binary insertion: It is the best at what it does (inserting into sorted list)
    2) Shell sort: so satisfiing visually (The list troughout the whole range is gradually more and more sorted)
    3) Basic form: very intuitive and easy to understand while being better performing out of the simplest ones. Even the code is very minimalistic and beautiful!
    for i = 0 to n:
    for j = 0 to i:
    if a[i] < a[j]
    swap(a[i], a[j])

  • @zemethius
    @zemethius Месяц назад +4

    I like how the noises range from tippy tappy on a child's xylophone to menace on a piano to discordia itself lol.

  • @wyattfightmaster916
    @wyattfightmaster916 Месяц назад +7

    2:24 When a cartoon character falls:

  • @appel-seed_
    @appel-seed_ 27 дней назад +2

    The sound before pancake sort- it's too cool

  • @astropeter31415
    @astropeter31415 25 дней назад +2

    Shell Sort and Selection Sort is two of my favorite algorithms!But Shell Sort is my most favorite algorithm.I used Selection Sort in my school.

  • @pangpanggao
    @pangpanggao День назад +1

    Relic sort: Combines grail and timsort. It uses the timsort stack and insertion sort blocks, but combines with grail.

  • @gnusnotutopia
    @gnusnotutopia Месяц назад +14

    stalin sort is wonderfully silly

  • @rubenvanderark4960
    @rubenvanderark4960 Месяц назад +19

    6:58 n=12 takes several months *on average*

  • @dead-eyedarrel3878
    @dead-eyedarrel3878 Месяц назад +1

    You made a sort colors video that is impressively difficult to listen to. I love it

  • @usernametaken017
    @usernametaken017 Месяц назад +6

    6:45 for bogo sort

  • @memofrf
    @memofrf 22 дня назад +1

    You have inspired me. Thank you,

  • @thatoneguy385
    @thatoneguy385 Месяц назад +1

    The subtitles really helped in understanding everything

  • @DisguisedParrot
    @DisguisedParrot Месяц назад +7

    I ❤️ your videos

  • @sedutperspi
    @sedutperspi Месяц назад +7

    New Kuvina video!!!

  • @HesterClapp
    @HesterClapp Месяц назад +5

    Why do most visualisations not show auxiliary memory?

  • @greenoxidated9377
    @greenoxidated9377 Месяц назад +2

    Shuffling gotta be my favorite out of them :D

  • @aerievee
    @aerievee Месяц назад +8

    fellow shell sort liker! High five!!

  • @Living_Murphys_Law
    @Living_Murphys_Law Месяц назад +2

    Pairwise network, the Radux ones, and Weave definitely look the coolest.

  • @sunnloc
    @sunnloc Месяц назад +2

    Min heap: Just like heap sort but it puts the smallest at the first places then reverses it when all maxes have been excrated. Baiai: Bubble and Insertion combined

  • @haipingcao2212_.
    @haipingcao2212_. Месяц назад +2

    My favorite 🎉🎉

  • @NumberVectors
    @NumberVectors Месяц назад +1

    insertion looks like a half-sort stack of lines eating up the other lines (idk how to explain it it's just so cool 🤩)

  • @Arkycite
    @Arkycite Месяц назад +3

    Bogo sort is sort what just mixing in random way and stopping when lines are sorted

  • @Xudmud
    @Xudmud Месяц назад +2

    Radix LSD has always sounded like a starship energizing for takeoff, especially on the last few iterations.

  • @RiedlerMusics
    @RiedlerMusics Месяц назад +4

    why do none of the popular visualizations show more than one bucket? :argh:
    fyi, I made basav (bucket-aware sorting algorithm visualizer), but it's been unmaintainable and dead for years… I want to remake it properly one day, but I don't have time…

  • @Ratz99
    @Ratz99 Месяц назад +3

    I am a sorting and I feel algorithmed

  • @Tytoalba777
    @Tytoalba777 Месяц назад +3

    I was waiting the entire video for Stalin sort. Was not disappointed

  • @candykatkittylichiousisthebomb
    @candykatkittylichiousisthebomb Месяц назад +1

    Cool!

  • @herrhartmann3036
    @herrhartmann3036 17 дней назад +1

    It would have been more intuitive to use low notes for the high values and vice versa.
    That's how musical instruments actually work:
    A small object makes a short wavelength, which creates a "high" note.
    A large object makes a long wavelength, which creates a "low" note.

  • @LitoMike
    @LitoMike 25 дней назад +1

    my ears are secreting some weird red substance right now

  • @lyndonbrown3471
    @lyndonbrown3471 Месяц назад +4

    2:24 is a UFO landing

  • @dj_laundry_list
    @dj_laundry_list Месяц назад +1

    It would be cool if the runtimes were included... so I could hone my intuition about runtime

  • @quocphong6588
    @quocphong6588 Месяц назад +1

    Quick sort is my favorite algorithm

  • @nevverre3500
    @nevverre3500 Месяц назад +1

    Eye candy

  • @urphakeandgey6308
    @urphakeandgey6308 Месяц назад +1

    4:35 Sounds like something Pilot Red Sun would kill to imitate.

  • @2010hyundaielantra
    @2010hyundaielantra 20 дней назад +4

    what is bro's beef with 70

  • @dmirtyisakov8112
    @dmirtyisakov8112 Месяц назад +1

    no bogobogo sort?

  • @samuel-zagueiro-raiz-de-rua
    @samuel-zagueiro-raiz-de-rua Месяц назад +1

    YEY

  • @asheep7797
    @asheep7797 Месяц назад +1

    Poplar sort, why do you use the orginal sound?

  • @gamergoogol2048
    @gamergoogol2048 Месяц назад +5

    why did i find this so early

  • @Nedo_letsplayshik
    @Nedo_letsplayshik Месяц назад +3

    Stalin sort🗣️🗣️🗣️🔥🔥🔥🔥🔥💯💯💯💯💯

  • @truongquangduylop33
    @truongquangduylop33 26 дней назад +1

    def selection_sort(data):
    """Sorts a list of data in ascending order using selection sort.
    Args:
    data: A list of sortable elements.
    Returns:
    A new list containing the sorted elements.
    """
    length = len(data)
    for i in range(length - 1):
    min_index = i
    for j in range(i + 1, length):
    if data[j] < data[min_index]:
    min_index = j
    if i != min_index:
    data[i], data[min_index] = data[min_index], data[i]
    return data
    # Example usage
    my_data = [64, 25, 12, 22, 11]
    sorted_data = selection_sort(my_data.copy()) # Avoid modifying original list
    print(sorted_data) # Output: [11, 12, 22, 25, 64]

  • @memofrf
    @memofrf 22 дня назад +1

    Baiiai not sure if i spelled it correctly but you get me.

  • @_personwhoplaysalot_336
    @_personwhoplaysalot_336 Месяц назад +2

    i cant..... bogo blinded me

  • @temmie1662
    @temmie1662 Месяц назад +3

    How did you get the sounds lol

    • @usernametaken017
      @usernametaken017 Месяц назад

      each number has a pitch i think

    • @temmie1662
      @temmie1662 Месяц назад

      @@usernametaken017 like number of n

  • @vk8a8
    @vk8a8 Месяц назад +2

    what was your first sorting algorithm? mine was insertion

    • @Kuvina
      @Kuvina  Месяц назад +2

      Selection is definitely the first idea that would come to mind, followed by bubble sort probably

    • @truongquangduylop33
      @truongquangduylop33 29 дней назад

      Mine iz Alternats Bitonic​@@Kuvina

    • @arcturusgd
      @arcturusgd 15 дней назад +1

      radix lsd base 4 and radix msd base 4

  • @franklinbates925
    @franklinbates925 25 дней назад +1

    quick is my favorate.

  • @ishu4227
    @ishu4227 16 часов назад +1

    I think gravity is just reverse bubble sort

  • @fortcraftgaming2136
    @fortcraftgaming2136 13 дней назад +1

    The binary sounded like oof

  • @theautisticdoomgod
    @theautisticdoomgod 26 дней назад +1

    THESE SOUNDS!!!!!!!
    🤤🤤🤤🤤🤣🤣🤣🤣

  • @Ehanray
    @Ehanray Месяц назад +1

    Algorithm 3 is super efficient its already done in 13 seconds

  • @aykarain
    @aykarain 26 дней назад +1

    new samples!!??!?!?!?!?!?

  • @OLIVE_MANN
    @OLIVE_MANN Месяц назад +2

    Ow my ears

  • @thienluuduc2207
    @thienluuduc2207 28 дней назад +1

    wavw

  • @MrDasirae
    @MrDasirae 21 день назад +1

    I've defragged myself

  • @aidanmaniaMusic
    @aidanmaniaMusic Месяц назад +6

    No spaghetti ):

    • @SlashCrash_Studios
      @SlashCrash_Studios Месяц назад +1

      Come to tf2, we have spaghetti of the source variety by the pallet!

  • @diegojost3351
    @diegojost3351 26 дней назад +1

    whadamawachin

  • @NumberVectors
    @NumberVectors Месяц назад +1

    heap looks like an avalanche 😂

  • @nojokeimcrying
    @nojokeimcrying 25 дней назад +1

    Me *not understanding wtf is going on* Kewl sounds and colours hehe

  • @truongquangduylop33
    @truongquangduylop33 26 дней назад +1

    def comb_sort(data):
    """Sorts a list of data in ascending order using comb sort.
    Args:
    data: A list of sortable elements.
    Returns:
    A new list containing the sorted elements.
    """
    shrink_factor = 1.3
    gap = len(data)
    completed = False
    while not completed:
    # Update the gap value for a next comb gap
    gap = int(gap / shrink_factor)
    if gap < 1:
    gap = 1
    completed = True
    index = 0
    while index + gap < len(data):
    if data[index] > data[index + gap]:
    data[index], data[index + gap] = data[index + gap], data[index]
    index += 1
    return data
    # Example usage
    my_data = [5, 2, 4, 6, 1, 3]
    sorted_data = comb_sort(my_data.copy()) # Avoid modifying original list
    print(sorted_data) # Output: [1, 2, 3, 4, 5, 6]

  • @yellowmarkers
    @yellowmarkers Месяц назад +3

    Kuvina Saydaki

  • @Greenthinglikesme7291
    @Greenthinglikesme7291 Месяц назад +1

    Number-1+1×2×2÷2÷2 sort
    5000 numbers
    100 number per sort

  • @jimiwills
    @jimiwills Месяц назад +1

    Pancake made me feel sick.

  • @TheRush.000
    @TheRush.000 25 дней назад +1

    16:33 this tim sort is same as merge

    • @TheRush.000
      @TheRush.000 25 дней назад

      18:23 this Weave sort is same as merge too

    • @pangpanggao
      @pangpanggao День назад

      Well they are both different from actual merge. Tim makes sub lists of size 32-64 with insertion, and weave alternates between the two, then insertions sorts them. Sure, they do look similar, but they are different algorithms.

  • @dmirtyisakov8112
    @dmirtyisakov8112 Месяц назад +1

    miracle sort just gave up lol

  • @mzakyr342
    @mzakyr342 Месяц назад

    if the software is not open source the its a crime punishable with 30 times licking ice cream

  • @_personwhoplaysalot_336
    @_personwhoplaysalot_336 Месяц назад +1

    the heck what happened to stalin?????

    • @unnnamd
      @unnnamd 27 дней назад

      Stalin sort just deletes any element that is smaller than the previous one, it's just how it sorts

  • @vk8a8
    @vk8a8 Месяц назад +1

    hello😊

  • @gamerguyrandom
    @gamerguyrandom Месяц назад +1

    8

  • @asheep7797
    @asheep7797 Месяц назад +2

    2 hors

  • @truongquangduylop33
    @truongquangduylop33 29 дней назад +2

    R

  • @mansurehrezaeitabar3110
    @mansurehrezaeitabar3110 29 дней назад +2

    0:06 Selection Sort,1st Sort of Selection Sorts Family
    0:26 Double Selection Sort,2nd Sort of Selection Sorts Family
    0:37 Insertion Sort,1st Sort of Insertion Sorts Family
    1:00 Binary Insertion Sort,2nd Sort of Insertion Sorts Family
    1:14 Bubble Sort,1st Sort of Exchange Sorts Family
    1:39 Cocktail Shaker Sort,2nd Sort of Exchange Sorts Family
    2:01 Comb 🪮 Sort,3rd Sort of Exchange Sorts Family
    2:21 Maximum Heap Sort,3rd Sort of Selection Sorts Family
    2:43 Minimum Heap Sort,4th Sort of Selection Sorts Family
    2:55 Shell 🐚 Sort,3rd Sort of Insertion Sorts Family
    3:24 Quick Sort(Left/Right Pointers),4th Sort of Exchange Sorts Family
    3:47 Merge Sort,1st Sort of Merge Sorts Family
    4:15 Least Significant Digit Radix Sort(Base 4),1st Sort of Distribution Sorts Family
    4:35 Least Significant Digit Radix Sort(Base 10),2nd Sort of Distribution Sorts Family
    4:53 Most Significant Digit Radix Sort(Base 4),3rd Sort of Distribution Sorts Family
    5:16 Most Significant Digit Radix Sort(Base 10),4th Sort of Distribution Sorts Family
    5:33 Bucket 🪣 Sort(10 Buckets),5th Sort of Distribution Sorts Family
    6:04 Bucket 🪣 Sort(10 Bucket Numbers),6th Sort of Distribution Sorts Family
    6:19 Counting Sort,7th Sort of Distribution Sorts Family
    6:33 Gravity Sort,8th Sort of Distribution Sorts Family
    6:46 BOGO Sort,1st Sort of Impractical Sorts Family
    7:08 Pancake 🥞 Sort,1st Sort of Misccelaneous Sorts Family
    7:37 Cycle 🔁🔄🔃 Sort,5th Sort of Selection Sorts Family
    8:05 Sandpaper Sort(aka Earthbound Sort),5th Sort of Exchange Sorts Family
    8:28 Reverse Sandpaper Sort(or Reverse Earthbound Sort),6th Sort of Exchange Sorts Family
    8:44 Odd-Even Sort,7th Sort of Exchange Sorts Family
    9:08 Gnome Sort,8th Sort of Exchange Sorts Family
    9:32 Baiai Sort,1st Sort of Hybrid Sorts Family
    9:55 Circle ⭕️ Sort,9th Sort of Exchange Sorts Family
    10:13 Patience Sort,4th Sort of Insertion Sorts Family
    10:43 Strand Sort,2nd Sort of Merge Sorts Family
    11:19 Iterative Bitonic Sort,1st Sort of Concurrent Sorts Family

  • @DEMEMZEA
    @DEMEMZEA Месяц назад

    Why no sound?

    • @Kuvina
      @Kuvina  Месяц назад +4

      There's sound

    • @DEMEMZEA
      @DEMEMZEA Месяц назад

      Maybe@@Kuvina Maybe

    • @parkpakh7775
      @parkpakh7775 Месяц назад +1

      @DEMEMZEA there is

    • @DEMEMZEA
      @DEMEMZEA Месяц назад

      @@parkpakh7775 maybe

    • @DictatePM
      @DictatePM Месяц назад +1

      what do you mean with 'maybe'...?​@@DEMEMZEA

  • @justman017
    @justman017 24 дня назад +2

    Stalin?

  • @Chunes3
    @Chunes3 Месяц назад +2

    Counting sort looks like cheating!

    • @Kuvina
      @Kuvina  Месяц назад

      It kind of is, since it only works on integers! Also, my array is always just integers 1 to n, but if you had a very large range of numbers, it would be really slow.

  • @helios749
    @helios749 22 дня назад

    LGBT ?

  • @DrozGodhammer
    @DrozGodhammer Месяц назад +1

    sounds like a cat falling unto a piano and then doing a tap dance on it.

  • @subscheme
    @subscheme Месяц назад +1

    lol