I've watched 600 TV shows, and I want to sort them in order of how much I liked them. I'm bad at assigning absolute scores, but good at comparing relative enjoyment, so it has to be a comparison sort. But even with an optimal algorithm, a comparison sort based on pairwise comparisons on 600 elements would take thousands of comparisons.
That would probably only take a couple hours, but I thought having each comparison be in batches of k
(=, say, 5) items at a time would be faster. I think I can rank 5 things pretty quickly. The program would calculate which items to compare and show me them, and I would just drag them around, submit, and repeat.
I don't know much about information theory, but I assume since each comparison has k!
outcomes (one for each permutation), it should only take log_{k!} (n!)
comparisons to sort n
items, which, for n=600, k=5
, is under 680.
Is there any algorithm designed for this? The closest I've found is the k-way merge, but that would only use the k-way comparison at the very start. I think a recursive Ford-Johnson-style algorithm might work, but I don't know.
Also, if this is useful, I've already scored most of the TV shows on an integer scale from 1 to 10, but that's not nearly enough granularity to sort with, and it's a very loose scoring, too; arbitrarily, only score differences greater than 2 are valid (e.g. a 4 may be better than a 6, but is definitely worse than a 7). Almost all the scores are 7.