this post was submitted on 16 Aug 2025
27 points (96.6% liked)

Data Structures and Algorithms

249 readers
1 users here now

A community dedicated to topics related to data structures and algorithms.

founded 2 years ago
MODERATORS
 

I'm currently working on a little web app that allows the user to sort a list of elements (like a tier-list maker).

Instead of just asking the user to sort the list through drag'n drop, I thought I could run a sorting algorithm that would ask the user every time it needs to make a comparison.

The whole thing would feel a bit magic, since you would have several questions like "Which one do you prefer, A or B?" and get your sorted list.

The question is: which algorithm should I use to keep the user entertained? I don't want to compare A with everything, then B with everything and so on with something like a Bubble Sort, that would be boring.

What do you think about it? Please be aware this is not a big project, just something I make out of curiosity. Thanks in advance!

Edit:
As an example, let's say I want to sort fruits by personal preference.
I have a list [Apple, Banana, Coconut, Durian, Eggplant, Fig, Grape] but no algorithm can tell if I prefer an apple or a banana so it needs to ask me.
What would be the questions an algorithm needs to ask me in order to sort the list of fruits for me?
The idea behind it is not to sort stuff but to spark discussion during the "comparison" step ("Ok, why do you prefer bananas to apples?"), that's why I need successive comparisons to be different, so it keeps the users' interest.

you are viewing a single comment's thread
view the rest of the comments
[–] Quibblekrust@thelemmy.club 3 points 4 months ago* (last edited 4 months ago)

I've had very similar ideas many times, but never decided to make anything. Specifically, the A versus B idea. My ideas for such a system are always about a giant public databases of ratings and not about making tier lists.

I don't think such a system can create tier lists. Tier lists are about giving individual things a 5 to 0 rating: S, A, B, C, D or F, and then plotting them on a chart. You could have 1 S and 11 Fs! And that's a different list than if they're evenly distributed amongst the ranks. Or if all twelve things are a B.

Your binary approach can only produce a linear ranking of items: First place, second place, third place, fourth place, etc. You can't produce a tier list from that data.

That sounds really promising since the user input doesn't need to be "A vs B" but can can accept nuances (with a cursor of some sort). (https://lemmy.world/comment/18834907)

Well shit, I guess that changes everything. In some board game tournaments, they keep track of the point spread in each game and use it in rankings. Sometimes this spread can be so large that second place needs to beat first place like four times in a row to win, for example. You could look into a system like that. That's what Scrabble tournaments use. In the US, at least, I think.