Selecton sort makes the sort faster by not swapping until the very end of a pass. It keeps track of the biggest element, and only swaps it to the end once it's looked at every element. (Of all the sorts you will learn, it is actually the one that makes the fewest number of swaps or copies of data.)
Even so, the time it takes is still based on ever-decreasing passes. It is quadratic just like shaker sort and bubble sort.
It does have a way to retire multiple elements at once (like the previous sorts). In this case, the number of consecutive times it discovers a new better element, at the end, is the number of retirements that can be made. So if it finds a new best element, then immediately does so again, and then immediately does so again, and that's the end of the pass, then it can retire three elements.
Like with bubble sort, this really only helps when the array is semisorted:
While technically adapative, it is not nearly so adaptive as bubble sort or shaker sort.Interestingly, selection is is not stable. (Most quadratic sorts are.) Swapping non-adjacent elements tends to put some displaced elements on the wrong side of others with which they're tied.
Because of this lack of stability (and the fact that it's quadratic), selection sort is pretty rare too. But here it is, compared with the other sorts we've seen.
On to insertion sort...