Remix.run Logo
bee_rider 2 hours ago

Well, it came out a while ago, so maybe we can be a bit silly:

There’s something sort of beautiful about mergesort and heapsort. Their names tell you what their main idea is, and how they work is immediately obvious.

Quicksort, on the other hand, has nothing beautiful about it and is named after it’s one redeeming feature (that it is quick for a lot of cases).

rodrigosetti 2 hours ago | parent | next [-]

Maybe if Hoare had called it Partitionsort in 1960, the name wouldn’t have been memorable enough to catch on and become so popular.

thesz 2 hours ago | parent | prev | next [-]

The beauties of quicksort are that it sorts in-place and that it is embarrassingly simple.

The in-place property can be utilized to make it very close to cache-oblivious algorithm.

teiferer 2 hours ago | parent | prev [-]

How is it less beautiful?

Honest question, curious to hear about what that means to you.

drdexebtjl 22 minutes ago | parent [-]

To me it’s the fact that if you try to do it in real life (i.e. sorting a collection of objects in the real world), you just end up doing merge sort by accident.

So it feels like an optimization of merge sort for computers, rather than a different approach.

This is also reflected in the way that it’s usually taught. Normally merge sort is presented first, and quick sort follows from observations about what would happen if you picked different partition points instead of dividing them in half, and how you can reduce the additional space requirements.