As a software developer I just love his thinking approach to an Algorithm. Morover just love to see how happy he is while doing this and how much he's enjoying this.. Big fan.
I've been watching your challenge videos for a while, watching until I understand what it is, actually researching and coding them and then looking at what you did. Pretty fun way to spend/procrastinate through a couple hours
Dude just did an entire weeks worth of my programming homework in one sitting, added great commentary and instruction the entire time, recorded a fun video and I was still completely more interested in this than doing my own homework. Good shit
My goodness , each video of yours is mesmerizing. I kinda keep watching it till the end even if i don't understand some stuff in between. **most important note is I never get bored of your videos 😅** You're amazing!!!!!
I took a basic computer science class because I needed the credit. We actually used a couple of your videos as references. Now I have a somewhat newfound interest in computer science once again, and these videos are actually pretty intriguing.
Actually it grows polynomially and not exponentially since O(n^2) < O(2^n). For instance, in the case of n=6 as in your example, a polynomial growth implies 36 computations, while an exponential growth 64. Just as a reminder (from biggest to smallest) - Factorial O(n!) - Exponential O(a^n) for a fixed - Polynomial O(n^a) for a fixed - O(n log n) - Linear O(n) - Logarithmic O(log n) - Constant O(a) for a fixed
I just love your energy, from a 31 year old, 3 year professional coder, going over these basics with that sun in the background and you dancing. Kalabunga what fun learning. Annnd pretty sure I won't have to go over this basic again as you have imprinted it..... so therefore, on to allll your other videos to get that same level of imprint. THANK YOU. I am subscribed and liked and shall continue to like, great great educational, so fun, content. The dances just get me and nervous hahaha been at this for 3.5 hours now, thank you for your time. Super.
This is really a subject that I find interesting. When I was younger I loved to do sort visualizations (and fractals) . You gave me the motivation to continue :) Apart from that, you're very energetic, funny and passionated, keep up the good work
@@alcxander Essentially you fill in any number that will currently work in a cell and assume that it's correct. Then you keep filling out the board until you fail, take a step back, try a different number, repeat. You can backtrack all the way to cell #1 if you are unlucky, but this is a slightly more elegant brute force.
I don't know what the hell is going on here, but it's cool to see what goes on behind those neat sorting animations that keep popping up in my feed. I never made it past the first couple of Hour of Code levels.
Your videos are awesome, I have learned so much by watching them! I would love to see a videos series on assembler programming. I did not understand this stuff till now, but I know if you were my teacher I definitely would. :-)
New sorting algorithm >> DERP SORT Sets a random number to the begining and if it is the smallest keep it and remove it from the list, else get a new random number from the list and keep the old one in the list. Mindblown
It is nice how the simple lines at 5:25 show the problem with the used "Random" function of java - for most applications it is fine, but the numbers do exhibit a pattern.
Thank you sir, greatly enjoyed. There was a time I wrote code just like that... in machine code, before there was C compiler. More addicting than games, because there were no games...long into the dark and tired night. No source control, no internet. I greatly miss it. 11.27.21
I don't even know what is processing programming language is but I see his videos for months now to understand the logic then I'm trying recreate it in MATLAB.
The least efficient sorting algorithm as far as I know is not bubble sort, it's random sort. This randomizes the order of the array, checks if it's in order, if not then it randomizes it again. This method is n! or n factorial, which is much more than n². 7! for example would be 1*2*3*4*5*6*7 which is 5,040, whereas 8! is 40,320. An array of 8 needs an average of 40,320 operations to sort... Crazy. There is basically no reason to do this except fun as far as I know.
A tip, each subsequent pass only needs to traverse until the last swap, not until the decrementing index. Also, you will know you are at the end if a pass did no swaps.
3:38 correction not just how long it performs but how many accesses, comparisons, and where the data is access plays a part for one reason: storage media. Rotational drives like algorithms that dont have to move the spindle around the surface constantly or that access data sequentially. Hybrid drives love algorithms that use the beginning of the set as a temporary storage space (solid state occupies the first 10-20% of the drive), NAND and VNAND love algorithms that break themselves up into evenly spaced blocks (blocks of data). Sometimes it's not exactly how long it takes to complete a sort, minimizing damage to your storage media matters at the data center which is how and why many of these sorting algorithms came to be in the computer science world. Hundreds of trillions of disk accesses matter to drive life over time. Big databases enjoy the reliability and benefit of a smartly chosen sorting alogirhtm. FYI the fastest in volatile memory (RAM) for those concerned is pigeonhole. 4000 accesses and 0 comparisons. If you have a mechanical drive that's new, choose Radix (all base forms of RADIX produce sequential, rotational movement during access times when graphed during sorting) , if you've a hybrid drive for your data set, choose WikiSort (first 10% of the set is used as the comparitive area) . Proper choices will preserve the life of your drive.
the most inefficient sorting algorithm is actually the random sort. You rearrange the array randomly and check if it's sorted. I believe the computation time grows at n!
Bubble Sort is not the worst, that goes to Bogosort, whose Big O notation is "(n + 1)"! [the reason is because it randomizes the order of the list until it is sorted]
How long the sort takes depends on the values. If they are already mostly I'm order a bubble sort can complete in only a few passes. Use the correct sorting algorithm for your data.
10:00 you don't need j, you just need i. then just have a boolean saying if everything is sorted, then just end it if that boolean is true (it is sorted) every time you check if it is sorted, if you didn't have to swap then keep it true, but if you had to swap then make it false, and when you reset i to 0 check if sorted is true, if it is true then you didnt have to swap anything and it is all sorted, but if it is false, then set it to true and go over the array again
Ack, I always make this mistake, thank you for pointing it out. I'll add a note to the description. (I leave videos online and unlisted for a bit while I prepare captions etc. I like to release only one video per day but happy for people to find them in advance.)
Ahhhh and the "jolly-ness" of Dan! It's just so enjoyable to watch your vids! #TheCodingSanta - Santa now codes! *Watching your videos makes me happy! xD
Just by watching and understanding what you say I did my HW in a few minutes. I would love to nuke the LIKE BUTTON!!!!! Dude you are AWESOME. Just by watching you makes me smile. :D
Here is my Version in p5.js: editor.p5js.org/NachoMan/sketches/3dCeFi1_ Im especially proud of the "clean" shuffle algorithm i wrote and don´t really understand by myself but it works great. xD
Learnt sorting way back in secondary waaay back in 2006! It's so fun to relearn it while your positivity cheers me up as well! :) Also, can this be implemented using Python? i'm sure it can, but i don't know much about python, so i'll try to do this there, and it would be a good opportunity to learn as well~!
Soy de México y estoy estudiando la universidad, curso la carrera en Ciencias de la Computación, conocí tu canal hace no mucho tiempo y me encantó, eres increíblemente ingenioso y muy rápido, con una habilidad tremenda para programar, me la paso viendo tus videos pero mi nivel de inglés aún no es tan bueno como para entender todo lo que dices :(, ojalá que algún día exista un canal en español o yo aprenda bien inglés jaja, en fin quería decirte que incluso a hispanohablantes asombras con tus habilidades de programación. Éxito.
Let me translate for you guys: "I'm from mexico, and I'm studying in college computer sciences. I found your channel not so long ago and I loved it, you're really clever and fast, with a tremendous ability to code things. I spend a lot of time watching your videos but my english is still not so good to understand everything you say :(, hopefully someday there is an spanish channel like yours, or I learn english haha. Anyway I wanted to tell you amaze that even to spanish-speakers with your skills."
Yo tambien estoy estudiando en la universidad Ciencias en computadoras solo que estoy en Puerto Rico metele fuerte al ingles lo vas a necesitar mucho para la programmacion y las oportunidades que vas abrir al entender mejor el ingles con la programmacion
You can use bully sort:
Choose the first element.
Delete the rest of the elements.
Your array is now sorted.
Lol
Arka Mitra Brutal, I like it.
You're genius man.😂😂
Similarly, there's Stalin sort:
Remove all the elements smaller that the last "kept" value. For example :
5, 3, 8, 9, 1, 2, 10 becomes 5, 8, 9, 10.
Communism sort is: Choose the least element, assign the value to all other elements. The Array is now Sorted. xD
Thanos sort: delete half and sort the rest! It’s twice as effective
ha ha ha. I am gonna try and implement this.
def ThanosSort(list):
{
while not list.isSorted()
{
cullHalve(list)
}
return
}
Well i fact sorting isn't linear so it's more than twice effective :)
And use recursion next, so that the complexity will be O(log n)
📂Documents
└📁Videos
└📁 The Coding Train
└📁 Bad Videos
└⚠️ This folder is empty
362 likes and 0 comments?
I'm doing my part!
Let's fill this section with 500 comments!!! And also subscribe move 5% of Pews subs to the coding train, please, someone!
not gonna lie ya had me in the first half
I think you should sort out your folders
HOLY CRAP! HE'S FINALLY DOING SORTING ALGORITHMS
your name is "not really?" so it kindea breakes the point
@@yesveryprofesionalnameyes6055 yes yes very professional name yes
As a software developer I just love his thinking approach to an Algorithm. Morover just love to see how happy he is while doing this and how much he's enjoying this..
Big fan.
I wish I could bubble sort the stuff in my room.
jordan peterson approves
Me too, i can only bubble sort a coca-cola
Eh... Kinda slow.
pro tip: lock that door, find a new room, forget about the old one... maybe garbage collection kicks in
quick sort for you. Or if you bored, gravity sort it.
I didn’t understand a lick of the computer science, but I was entertained throughout
😮 For the first time ever I did something before Dan inspired me to. I feel like a true programmer now!
m2
Haha, I did this 2 weeks ago.
Did it on a 3ds last year haha these are fun
I suggest:
Merge Sort
Heap sort
Bogo sort and BogoBogo sort ;-)
Sleep sort
Gravity/Bead sort
Comb sort
Slow sort
Insertion sort
Rikkie Gieler Dont forget Miracle sort
Why not Radix sort as well
Don't forget Intelligent Design sort.
sorting with ML. Why not to try?
And then visualize all of them in a parallel sort way as well. like simulating multiple processors and what not.
I've been watching your challenge videos for a while, watching until I understand what it is, actually researching and coding them and then looking at what you did. Pretty fun way to spend/procrastinate through a couple hours
Daniel, you made me smile! Thanks for all your efforts.
Dude just did an entire weeks worth of my programming homework in one sitting, added great commentary and instruction the entire time, recorded a fun video and I was still completely more interested in this than doing my own homework. Good shit
My goodness , each video of yours is mesmerizing. I kinda keep watching it till the end even if i don't understand some stuff in between.
**most important note is I never get bored of your videos 😅**
You're amazing!!!!!
Sorting visualizations are so relaxing! Awesome vid :)
I took a basic computer science class because I needed the credit. We actually used a couple of your videos as references. Now I have a somewhat newfound interest in computer science once again, and these videos are actually pretty intriguing.
I LOVE you! Sorting algorithms are too much fun
The animation using the noise blew my mind. So cool!
Actually it grows polynomially and not exponentially since O(n^2) < O(2^n). For instance, in the case of n=6 as in your example, a polynomial growth implies 36 computations, while an exponential growth 64. Just as a reminder (from biggest to smallest)
- Factorial O(n!)
- Exponential O(a^n) for a fixed
- Polynomial O(n^a) for a fixed
- O(n log n)
- Linear O(n)
- Logarithmic O(log n)
- Constant O(a) for a fixed
ehud kotegaro O(n^n) grows even faster than O(n!).
@ehud kotegaro not helpful
YOU’RE THE BEST TEACHERRR
PERIODTTTT
You make coding much more fun!! Keep being yourself!
I just love your energy, from a 31 year old, 3 year professional coder, going over these basics with that sun in the background and you dancing.
Kalabunga what fun learning.
Annnd pretty sure I won't have to go over this basic again as you have imprinted it..... so therefore, on to allll your other videos to get that same level of imprint. THANK YOU.
I am subscribed and liked and shall continue to like, great great educational, so fun, content. The dances just get me and nervous hahaha been at this for 3.5 hours now, thank you for your time.
Super.
You are amazing. That was hella fun! Thank you very much.
This is really a subject that I find interesting. When I was younger I loved to do sort visualizations (and fractals) . You gave me the motivation to continue :)
Apart from that, you're very energetic, funny and passionated, keep up the good work
In which language you used to do visualizations?
You should do a soduko solver! Ive been trying to make one thats a 3x3 for awhile. I wanna try to do it very eligantly.
It gets solved fairly efficiently by backtracking, you should try that.
@@amrsaber5457 whats backtracking in this context?
@@alcxander try m.ua-cam.com/video/auK3PSZoidc/v-deo.html
@@alcxander Essentially you fill in any number that will currently work in a cell and assume that it's correct. Then you keep filling out the board until you fail, take a step back, try a different number, repeat. You can backtrack all the way to cell #1 if you are unlucky, but this is a slightly more elegant brute force.
Actually, the least efficient sorting algorithm is the random sort.
*pushes glasses up nose*
BogoSort. I suspect the Bogo stands for Bogus.
Surprisingly it can work for short lists (less than ten elements).
Nah, miracle sort is worse. "Is it sorted yet? No? Okay, wait, do nothing, wait a minute, and check again.
I don't know what the hell is going on here, but it's cool to see what goes on behind those neat sorting animations that keep popping up in my feed. I never made it past the first couple of Hour of Code levels.
Your videos are awesome, I have learned so much by watching them! I would love to see a videos series on assembler programming. I did not understand this stuff till now, but I know if you were my teacher I definitely would. :-)
New sorting algorithm >> DERP SORT
Sets a random number to the begining and if it is the smallest keep it and remove it from the list, else get a new random number from the list and keep the old one in the list.
Mindblown
Fast sort:
until [done] do
shuffle (not right placed)
end
Queen of sorting!
“Bubble sort is probably the least efficient sorting algorithm”
Bogosort has entered the chat
Visual sorting algorithms are like crack for my OCD. I love it!
the merge sort looks really incredible
It is nice how the simple lines at 5:25 show the problem with the used "Random" function of java - for most applications it is fine, but the numbers do exhibit a pattern.
Congratulations, you made me want to learn how to code.
I like watching these videos. It's relaxing.
these are so cool. like the energy is contagious and the teachin is so goood. thenkssssssss
Thank you sir, greatly enjoyed.
There was a time I wrote code just like that...
in machine code, before there was C compiler.
More addicting than games, because there
were no games...long into the dark and tired night.
No source control, no internet.
I greatly miss it.
11.27.21
Please do the radix sort :)
Awesome video from France !
BON JOOR MISS SURE. COMA SA VA!
The most (and kind of least) efficient sorting algorithim is the random sort; you randomly arrange the numbers, and check if it's correct.
And i think it is O(n!)...
I don't even know what is processing programming language is but I see his videos for months now to understand the logic then I'm trying recreate it in MATLAB.
YESSSS!!!!! Visualize ALL OF THE SORTS!
Insertion, Merge, GO GO GO!
ua-cam.com/video/SJwEwA5gOkM/v-deo.htmlm36s Enjoy this clip from Sorting out Sorting....
The least efficient sorting algorithm as far as I know is not bubble sort, it's random sort. This randomizes the order of the array, checks if it's in order, if not then it randomizes it again. This method is n! or n factorial, which is much more than n². 7! for example would be 1*2*3*4*5*6*7 which is 5,040, whereas 8! is 40,320. An array of 8 needs an average of 40,320 operations to sort... Crazy.
There is basically no reason to do this except fun as far as I know.
Loved this. Takes me back to college. I think every freshman has to make a visual bubble sort so the prof can detail how ineffecient it is
no clue about any of this stuff, but i love your personality so i watch anyway, youre awesome
A tip, each subsequent pass only needs to traverse until the last swap, not until the decrementing index. Also, you will know you are at the end if a pass did no swaps.
This was very nice. I was thinking about creating a "genetic algorithm sort" next, combining some of your former videos and this one :P
You can also keep track of whether there is a swap or not. If not you can terminate the sort.
I dont even know what's happening but this amazes me!
Oh how I wish this was available when I did sorting algorithms last year! Great vid.
*Ps I'm a proud owner of a copy The Nature Of Code :)
Hey Dan I'm almost selected for the National level Coding Championship. 😍😍
All thanks to you and my school teacher😍
are you into compettitive programming?
3:38 correction not just how long it performs but how many accesses, comparisons, and where the data is access plays a part for one reason: storage media. Rotational drives like algorithms that dont have to move the spindle around the surface constantly or that access data sequentially. Hybrid drives love algorithms that use the beginning of the set as a temporary storage space (solid state occupies the first 10-20% of the drive), NAND and VNAND love algorithms that break themselves up into evenly spaced blocks (blocks of data). Sometimes it's not exactly how long it takes to complete a sort, minimizing damage to your storage media matters at the data center which is how and why many of these sorting algorithms came to be in the computer science world.
Hundreds of trillions of disk accesses matter to drive life over time. Big databases enjoy the reliability and benefit of a smartly chosen sorting alogirhtm.
FYI the fastest in volatile memory (RAM) for those concerned is pigeonhole. 4000 accesses and 0 comparisons. If you have a mechanical drive that's new, choose Radix (all base forms of RADIX produce sequential, rotational movement during access times when graphed during sorting) , if you've a hybrid drive for your data set, choose WikiSort (first 10% of the set is used as the comparitive area) . Proper choices will preserve the life of your drive.
making videos super interesting, cool guy, we really had enjoyed your videos.
the most inefficient sorting algorithm is actually the random sort. You rearrange the array randomly and check if it's sorted. I believe the computation time grows at n!
Man I wish I knew coding/programming has as good as you. I'm trying to teach myself python now. I hope to get to this level some day
i lik your explication method it is amazing ...no boring thnx
You can probably use generators using the yield keyword to make the visualization of each step simple.
Sorting algorithms! Something I was planning to do! I'm curious to see how the algorithms work.
and i thought sorting algos would be boring. but with these visualizations?! Damn, Imagination is the limit!
Stalin sort:
Go through the list, and simply delete elements which are out of order.
Your array is now sorted.
Bubble Sort is not the worst, that goes to Bogosort, whose Big O notation is "(n + 1)"! [the reason is because it randomizes the order of the list until it is sorted]
09:23 that jump though, it feels so relatable..lol
somehow, there's something so magical about you saying "I just sorted this with a bubble sort"
Awesome!!! Man love your channel 🔥😁
16:37 moves invisible laptop
How long the sort takes depends on the values. If they are already mostly I'm order a bubble sort can complete in only a few passes. Use the correct sorting algorithm for your data.
Wow.... I have never ever seen someone using processing other than using it while programming an Arduino :D Took me back to college :D
How did I miss this one? Thanks for the video Dan
10:00 you don't need j, you just need i. then just have a boolean saying if everything is sorted, then just end it if that boolean is true (it is sorted)
every time you check if it is sorted, if you didn't have to swap then keep it true, but if you had to swap then make it false, and when you reset i to 0 check if sorted is true, if it is true then you didnt have to swap anything and it is all sorted, but if it is false, then set it to true and go over the array again
Why is this video not listed?
anyway, the growth isn't exponetially, it's quadratic or polynomial, more generally speaking.
Ack, I always make this mistake, thank you for pointing it out. I'll add a note to the description. (I leave videos online and unlisted for a bit while I prepare captions etc. I like to release only one video per day but happy for people to find them in advance.)
I see, thanks for the explanation :)
Great video as always!
Do you plan you continuing these series? It's so helpful
Yes, definitely!
Please do a video of the quickest sorting method, with this same format please
Ahhhh and the "jolly-ness" of Dan! It's just so enjoyable to watch your vids! #TheCodingSanta - Santa now codes!
*Watching your videos makes me happy! xD
What's this treasure I've stumbled upon
Great work Dan! Could you try to visualize the Radix Sort?
This guy is crazy but one of the best tutor 😎
More sorting videos please!
This guy is a legend.
Watching this video features heavily, very heavily, on my to-do list today. Thank you, Dinael Shufflepins. X
Background(0) ?? Er you okay Daniel? Why not 51?
haha!
@@TheCodingTrain uhh i cringe everytime someone puts a exclamation mark at the end of haha or xd.
haha xd
this comment has 51 likes lmao
@@blinzi69 I wouldn't want to ruin that
A pretty nice thing to try is to implement some kind of temporal control, so you can go forward or backward in the sorting process. Give it a try 😊
Timsort. It's the main sorting algorithm used by Python and Java now.
Just by watching and understanding what you say I did my HW in a few minutes.
I would love to nuke the LIKE BUTTON!!!!!
Dude you are AWESOME.
Just by watching you makes me smile. :D
How do you make everyone laugh even while coding.
you are amazing man, amazing
Here is my Version in p5.js: editor.p5js.org/NachoMan/sketches/3dCeFi1_
Im especially proud of the "clean" shuffle algorithm i wrote and don´t really understand by myself but it works great. xD
As I goes up...
My grammar instincts kick in
I really really want to see you do Delaunay triangles Daniel, easy as on paper, not so easy in programming lol
MickyR What's that?
Learnt sorting way back in secondary waaay back in 2006! It's so fun to relearn it while your positivity cheers me up as well! :)
Also, can this be implemented using Python? i'm sure it can, but i don't know much about python, so i'll try to do this there, and it would be a good opportunity to learn as well~!
If you make a python version please share! thecodingtrain.com/CodingChallenges/114-bubble-sort.html
Soy de México y estoy estudiando la universidad, curso la carrera en Ciencias de la Computación, conocí tu canal hace no mucho tiempo y me encantó, eres increíblemente ingenioso y muy rápido, con una habilidad tremenda para programar, me la paso viendo tus videos pero mi nivel de inglés aún no es tan bueno como para entender todo lo que dices :(, ojalá que algún día exista un canal en español o yo aprenda bien inglés jaja, en fin quería decirte que incluso a hispanohablantes asombras con tus habilidades de programación. Éxito.
David López González tengo classes en espanol.
Let me translate for you guys:
"I'm from mexico, and I'm studying in college computer sciences. I found your channel not so long ago and I loved it, you're really clever and fast, with a tremendous ability to code things. I spend a lot of time watching your videos but my english is still not so good to understand everything you say :(, hopefully someday there is an spanish channel like yours, or I learn english haha. Anyway I wanted to tell you amaze that even to spanish-speakers with your skills."
面白い。。。
HEROE!
Yo tambien estoy estudiando en la universidad Ciencias en computadoras solo que estoy en Puerto Rico
metele fuerte al ingles lo vas a necesitar mucho para la programmacion y las oportunidades que vas abrir al entender mejor el ingles con la programmacion
I've seen Cube Sort and then there's Slowsort.
Both were interesting.
I did this on a 3ds in 20 minutes these sort algs are fun
My worst nightmare would be to open UA-cam and don't find this channel.
Babe, its 3am, time to watch hours of sorting videos
That swap function is one of the reasons Python is the best.
Why, you ask? Because swapping two values in Python is:
a, b = b, a
Again the video i wanted to see..... thank you very much for this video...
You missed the oppurtunity to bubble sort visualize with bubbles (ellipse)..
making framrate higher wouldnt be better? Or it wont work?