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
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
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
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.
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. :-)
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
@@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.
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.
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.
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
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!
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.
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
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]
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.)
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
Why, in your sorting segment, do you repeatedly declare new floats a and b, assign them adjacent values from the array, then compare a and b? Why not just compare values[i] and values [i+1]?
Could you do more of these videos where you visualise different sorting algorithms since I really cannot find anyone explaining them. Radix/pigeonhole or something would be very cool
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
📂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
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.
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)
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.
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
😮 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
I didn’t understand a lick of the computer science, but I was entertained throughout
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 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!!!!!
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
Sorting visualizations are so relaxing! Awesome vid :)
the merge sort looks really incredible
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
In which language you used to do visualizations?
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.
Visual sorting algorithms are like crack for my OCD. I love it!
You make coding much more fun!! Keep being yourself!
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. :-)
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
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.ruclips.net/video/auK3PSZoidc/видео.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.
I LOVE you! Sorting algorithms are too much fun
YOU’RE THE BEST TEACHERRR
PERIODTTTT
Congratulations, you made me want to learn how to code.
This was very nice. I was thinking about creating a "genetic algorithm sort" next, combining some of your former videos and this one :P
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!)...
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
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.
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 like watching these videos. It's relaxing.
I dont even know what's happening but this amazes me!
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.
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
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!
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.
El julioprofe de la programacion
You can also keep track of whether there is a swap or not. If not you can terminate the sort.
09:23 that jump though, it feels so relatable..lol
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.
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?
Please do the radix sort :)
You are amazing. That was hella fun! Thank you very much.
Sorting algorithms! Something I was planning to do! I'm curious to see how the algorithms work.
Fast sort:
until [done] do
shuffle (not right placed)
end
and i thought sorting algos would be boring. but with these visualizations?! Damn, Imagination is the limit!
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
YESSSS!!!!! Visualize ALL OF THE SORTS!
Insertion, Merge, GO GO GO!
ruclips.net/video/SJwEwA5gOkM/видео.htmlm36s Enjoy this clip from Sorting out Sorting....
Great work Dan! Could you try to visualize the Radix Sort?
Wow.... I have never ever seen someone using processing other than using it while programming an Arduino :D Took me back to college :D
“Bubble sort is probably the least efficient sorting algorithm”
Bogosort has entered the chat
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
these are so cool. like the energy is contagious and the teachin is so goood. thenkssssssss
Awesome video from France !
BON JOOR MISS SURE. COMA SA VA!
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 😊
making framrate higher wouldnt be better? Or it wont work?
I've seen Cube Sort and then there's Slowsort.
Both were interesting.
This guy is crazy but one of the best tutor 😎
I spent like 3 hrs in js trying to do the same thing even before I saw this video
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
Queen of sorting!
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"
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]
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
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 :)
More sorting videos please!
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.
This guy is a legend.
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.
Timsort. It's the main sorting algorithm used by Python and Java now.
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
making videos super interesting, cool guy, we really had enjoyed your videos.
This dude reminds me of professor from movie where he decode some alien invasion plan. Same level of hype
*I'm happy to say I was able to independently discover the bubble sort algorithm. Too bad I was so late to the game.*
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?
03:57 shirking my actual responsibilities to go watch another coding train video...
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
The buble sort is one of the easiest to code. I already coded it once :).
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 :)
My worst nightmare would be to open RUclips and don't find this channel.
Why, in your sorting segment, do you repeatedly declare new floats a and b, assign them adjacent values from the array, then compare a and b? Why not just compare values[i] and values [i+1]?
I just started learning to code two days ago and I made a program that does the exact same thing as this in only 36 lines of code
(it took all day)
Awesome!!! Man love your channel 🔥😁
As I goes up...
My grammar instincts kick in
How do you make everyone laugh even while coding.
I'd love to see this done for Radix or Bucket Sort
Could you do more of these videos where you visualise different sorting algorithms since I really cannot find anyone explaining them. Radix/pigeonhole or something would be very cool
I would love to see a visualization of Radix Sort (hopefully its called radix sort in english aswell) :D
i lik your explication method it is amazing ...no boring thnx