birmingham.io

15 Sorting Algorithms in 6 Minutes (AKA: geek porn)

If you have even the slightest notion of geekiness in you, you’ll love this video. It’s a visual (and audio) representation of 15 different sorting algorithms, and it is a total joy to behold…

…turn the lights down, speakers up, fullscreen the video, and enjoy.

2 Likes

Weirdly mesmerizing…

This is beautiful…

This has been circling forever and I’m still annoyed at how the only sorting algorithm I remember off the top of my head is the bubble sort!

It didn’t seem worth starting a new sort topic but I may have converted it to word geek porn:

While worrying about the precise meaning of words like ‘sort’, ‘order’, ‘sequence’, ‘prioritize’ and ‘rank’, I was surprised to read that ‘sort’ has two completely different meanings, even within computing. There’s the one above and the equally obvious: ‘divide into categories, groups or sets’ but I don’t think we’d call that process a “sort algorithm”.

It’s more interesting if you think about whether those things are really different things. You’ll have to decided which two things I mean for yourself because my brain melted.

“Sort the washing by garment type then size” isn’t anything like commutative.

I’d call your second sort either categorise or classify.

I suspect I would too which is why I’ve never noticed the ambiguity before. I might say “sort these user-stories into groups of equal priority” though, which is both at once. That’s what I meant by “rank” - equal groups, sorted/ordered. Have you ever come across that as a data structure, with only relative ordering? It seems ideal for ‘to-do’ task priorities but I’ve never seen it.

Things got worse for a while. I discovered Clojure has ‘sorted ordered collections’ and ‘sorted unordered collections’ but it’s OK because they agree with me that (normal type) sorting and ordering are different things, which is what started this adventure: algorithmic or stay-where-you’re-put behaviour.

1 Like

re: user stories: I’m solidly in the ordering camp. When stories pass to development, the devs need to know – rather than guess or assess for themselves – the relative value of the stories. So they need to be ordered rather than prioritised. It’s also valuable for users/stakeholders to discuss the relative value of stories.

Priorities can be useful for certain things. Say, support tickets. The db has gone away and all systems are borked. Probably a Prio 1. All hands on deck! Slow response times somewhere. Probably a Prio 2. And so on.

Also, you often find that something, despite being a Priority 1, is really a Priority 1+. And so on. (Should you re-prioritise all the other tasks?)

Priorities also tend to stick around without be reassessed. That’s not a good thing in agile-land.

I’ve never found absolute priorities to be useful. If my Priority 1 task is to be interrupted by a 1+ (it always seems to be, strangely) then I want to add it, at the rank above the priority 1s and for all the other tasks on the very long list to ripple down.

Proudly sponsored by Bytemark