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.
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
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
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.
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!!!!!
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
@@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 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.
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
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. :-)
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
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 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.
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.
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.
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.
Před 5 lety
and i thought sorting algos would be boring. but with these visualizations?! Damn, Imagination is the limit!
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.
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]
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!
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
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.
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.)
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
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.
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.
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
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.
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
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
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
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!!!!!
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 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.czcams.com/video/auK3PSZoidc/video.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.
Please do the radix sort :)
The animation using the noise blew my mind. So cool!
“Bubble sort is probably the least efficient sorting algorithm”
Bogosort has entered the chat
You are amazing. That was hella fun! Thank you very much.
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 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’RE THE BEST TEACHERRR
PERIODTTTT
Congratulations, you made me want to learn how to code.
You make coding much more fun!! Keep being yourself!
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
these are so cool. like the energy is contagious and the teachin is so goood. thenkssssssss
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. :-)
Visual sorting algorithms are like crack for my OCD. I love it!
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?
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 lik your explication method it is amazing ...no boring thnx
the merge sort looks really incredible
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.
More sorting videos please!
09:23 that jump though, it feels so relatable..lol
I like watching these videos. It's relaxing.
This guy is crazy but one of the best tutor 😎
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
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!
czcams.com/video/SJwEwA5gOkM/video.htmlm36s Enjoy this clip from Sorting out Sorting....
What's this treasure I've stumbled upon
Stalin sort:
Go through the list, and simply delete elements which are out of order.
Your array is now sorted.
Fast sort:
until [done] do
shuffle (not right placed)
end
Queen of sorting!
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!)...
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.
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!
Sorting algorithms! Something I was planning to do! I'm curious to see how the algorithms work.
This guy is a legend.
no clue about any of this stuff, but i love your personality so i watch anyway, youre awesome
I did this on a 3ds in 20 minutes these sort algs are fun
somehow, there's something so magical about you saying "I just sorted this with a bubble sort"
Awesome video from France !
BON JOOR MISS SURE. COMA SA VA!
16:37 moves invisible laptop
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.
and i thought sorting algos would be boring. but with these visualizations?! Damn, Imagination is the limit!
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
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?
My worst nightmare would be to open CZcams and don't find this channel.
As I goes up...
My grammar instincts kick in
You can probably use generators using the yield keyword to make the visualization of each step simple.
How did I miss this one? Thanks for the video Dan
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.
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]
Please do a video of the quickest sorting method, with this same format please
This was very nice. I was thinking about creating a "genetic algorithm sort" next, combining some of your former videos and this one :P
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
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
Great work Dan! Could you try to visualize the Radix Sort?
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.
Babe, its 3am, time to watch hours of sorting 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!
I've seen Cube Sort and then there's Slowsort.
Both were interesting.
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
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.
Watching this video features heavily, very heavily, on my to-do list today. Thank you, Dinael Shufflepins. X
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 :)
Awesome!!! Man love your channel 🔥😁
Numbers algorithms that I show in so many computer screen
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 :)
Wow.... I have never ever seen someone using processing other than using it while programming an Arduino :D Took me back to college :D
I spent like 3 hrs in js trying to do the same thing even before I saw this video
Timsort. It's the main sorting algorithm used by Python and Java now.
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 😊
Again the video i wanted to see..... thank you very much for this video...
El julioprofe de la programacion
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?
This dude reminds me of professor from movie where he decode some alien invasion plan. Same level of hype
I'd love to see this done for Radix or Bucket Sort
The buble sort is one of the easiest to code. I already coded it once :).
Come on bubble sort you can do it!!
"The Sorting Algorithm That Could"
Do you plan you continuing these series? It's so helpful
Yes, definitely!
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
How do you make everyone laugh even while coding.
Bogosort please!