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 - Наука
Explanations: ruclips.net/video/h1Bi0granxM/видео.html
Which algorithm looks and sounds the coolest?
so many piano keys being slammed into my ears i like heap and comb tho
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.
shuffling
Def Bitonic w/ parallel processors
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.
There is a version of this video, in which quantum bogo sort actually sorted the list.
dont play with quantum bogo sort
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
I used the Stalin alghorithm to sort 85% of the problems in my company
Thanks!
My ass was NOT expecting bitonic sort in parallel processors to go as sicko mode as it did
Just saw it too! Insane lol
RIP the universe
I like that the instrument changes between sorts, they sound nicer than arrayV bip sound
70 algorithm, so wierd. I was expecting something random... maybe 37?
This is too deep
Veritasium moment
Alternate title: "When Kuvina meets Veritasium"
@@wyattstevens8574and we need vsauce, nilered and styropyro
Also backyard scientist
Best collab yet
@@temmie1662 VSauce be like, "37 is random... or is it?"
If Mario made a sorting algorithm: 1:02
I get it!😂
Yoooo when's this releasing on spotify
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
I mean they technically did get a miracle, they just didn’t sort it themselves
@@VibinSquad i guess that makes it bludger sort then
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
I felt an impending sense of doom when I saw quantum bogosort was next...
so this is what non-existence feels like, huh?
6:45 wake up babe new BogoSort type beat just dropped
12:38 blink and you miss it (bitonic parallel)
bitonic parallel is probably also the flashiest algorithm in this video
And sounds so futuristic 😂
@@pranitroy7306bogo
giving pattern defeating quicksort a uniformly random list is just mean
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])
I like how the noises range from tippy tappy on a child's xylophone to menace on a piano to discordia itself lol.
2:24 When a cartoon character falls:
The sound before pancake sort- it's too cool
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.
Relic sort: Combines grail and timsort. It uses the timsort stack and insertion sort blocks, but combines with grail.
stalin sort is wonderfully silly
6:58 n=12 takes several months *on average*
keep gambling 🔥🔥🔥🗣🗣🗣
You made a sort colors video that is impressively difficult to listen to. I love it
6:45 for bogo sort
You have inspired me. Thank you,
The subtitles really helped in understanding everything
I ❤️ your videos
New Kuvina video!!!
Why do most visualisations not show auxiliary memory?
Shuffling gotta be my favorite out of them :D
fellow shell sort liker! High five!!
Pairwise network, the Radux ones, and Weave definitely look the coolest.
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
My favorite 🎉🎉
insertion looks like a half-sort stack of lines eating up the other lines (idk how to explain it it's just so cool 🤩)
Bogo sort is sort what just mixing in random way and stopping when lines are sorted
Radix LSD has always sounded like a starship energizing for takeoff, especially on the last few iterations.
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…
I am a sorting and I feel algorithmed
I was waiting the entire video for Stalin sort. Was not disappointed
Cool!
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.
my ears are secreting some weird red substance right now
2:24 is a UFO landing
It would be cool if the runtimes were included... so I could hone my intuition about runtime
Quick sort is my favorite algorithm
Eye candy
4:35 Sounds like something Pilot Red Sun would kill to imitate.
what is bro's beef with 70
no bogobogo sort?
YEY
Poplar sort, why do you use the orginal sound?
why did i find this so early
Stalin sort🗣️🗣️🗣️🔥🔥🔥🔥🔥💯💯💯💯💯
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]
Baiiai not sure if i spelled it correctly but you get me.
i cant..... bogo blinded me
How did you get the sounds lol
each number has a pitch i think
@@usernametaken017 like number of n
what was your first sorting algorithm? mine was insertion
Selection is definitely the first idea that would come to mind, followed by bubble sort probably
Mine iz Alternats Bitonic@@Kuvina
radix lsd base 4 and radix msd base 4
quick is my favorate.
I think gravity is just reverse bubble sort
The binary sounded like oof
THESE SOUNDS!!!!!!!
🤤🤤🤤🤤🤣🤣🤣🤣
Algorithm 3 is super efficient its already done in 13 seconds
new samples!!??!?!?!?!?!?
Ow my ears
wavw
I've defragged myself
No spaghetti ):
Come to tf2, we have spaghetti of the source variety by the pallet!
whadamawachin
heap looks like an avalanche 😂
Me *not understanding wtf is going on* Kewl sounds and colours hehe
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]
Kuvina Saydaki
indeed
.
Number-1+1×2×2÷2÷2 sort
5000 numbers
100 number per sort
Pancake made me feel sick.
16:33 this tim sort is same as merge
18:23 this Weave sort is same as merge too
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.
miracle sort just gave up lol
if the software is not open source the its a crime punishable with 30 times licking ice cream
the heck what happened to stalin?????
Stalin sort just deletes any element that is smaller than the previous one, it's just how it sorts
hello😊
8
2 hors
R
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
Why no sound?
There's sound
Maybe@@Kuvina Maybe
@DEMEMZEA there is
@@parkpakh7775 maybe
what do you mean with 'maybe'...?@@DEMEMZEA
Stalin?
Counting sort looks like cheating!
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.
LGBT ?
sounds like a cat falling unto a piano and then doing a tap dance on it.
lol