You see in our mind map here that we're now in the sorting section and this big of an log-in, something
we haven't talked about, is showing up, we'll get to that in this section.
But I want to add a quick note here, looking at all these sorting algorithms and there's a lot more.
It's important to note that you don't need to write a sorting algorithm from scratch, most likely ever
in your career.
Frameworks usually do that for us.
But you do, however, need to know how they work, because while one you're most likely going to get
asked in an interview, and two, because it makes you a better engineer.
But this section is also about being efficient.
You see, you can spend a lot of time on each one of these sections implementing your own and talking
about it deeply, because I don't think I've ever heard of anybody actually having to implement in code
manually the sorting algorithms.
Most of the time you can just talk about it or the interviewer tells you that the array assorted and
you need to know what to do with it, but implementing it from scratch, that doesn't really happen.
But I've included it in this section because it's good to know how they work.
And I'm not going to lie coding, sorting algorithms is not my favorite either.
Don't let that deter you.
I encourage you to watch the next couple of videos and even practice coding your own sorting algorithms
because it will help your learning.
But the main thing that we're going to get from this section is not how to implement these.
I mean, we will do that, but the key is the trade off.
You see, we have the big picture here that we definitely know about.
Right.
We talked about data structures and how there's tradeoffs.
Well, when it comes to sorting, there's tradeoffs as well.
You see how there is some time, complexity, trade offs, space complexity, trade offs, and it's
important to know when to use what algorithm.
That's our goal of this section.
And before we get into our first sorting algorithm, I want to show you this nifty little tool that
I'm going to link to.
We have a few sorting algorithms.
We have insertion sought selection, sort, bubble, sort shall merge heap and then two different variations
of quicksort.
And we also have different data sets.
This is a random data set, see how they perform when I click here.
Based on different sorting algorithm.
See that they're all working and.
All of them finish at different times, one is a lot slower than the other.
What about nearly sorted?
Again, one such as insertion, it is really, really fast, while others are slower.
Reversed if the items are reversed and we need to sort a completely reversed list, again, different
algorithms.
Perform differently.
It's never one that wins out over the other, depending on the inputs.
What we need to do their.
Different abilities.
Let's start to learn about these different types of sorting algorithms so that by the end of these videos,
we can make the right decision when to use what I'll see in the next one.