A discussion of sorts

Programmers seem to go on endlessly about sorting algorithms, without actually saying much.
It took me years to really feel like I completely understood sorting, and even longer before I felt sure what the best sorting algorithm was for any particular situation.
So I've distilled it down to a few salient points, and a few algorithms to consider.

If you don't know what Big-O, or Invariant mean, take a look at things-you-should-know

There are three basic approaches to sorting of note;

Some of the problems that sorting algorithms run into; And three important algorithms to know about; There are a number of other sorts that don't really have value, but might be of interest for historical or other reasons..