There are a lot of sorting algorithms to sort a list on a computer, and a lot of theory about them. However, my problem is not how to sort a list under the quite well defined conditions of a computer, but to sort alphabetically a pile of exams (made on paper) after grading them.
I must admit that I'll never amortise the effort of optimising a task that just takes a fraction of an hour a few times a year, but that fraction of an hour is boring and I can't avoid thinking about the problem of optimising the task while I'm at it, and getting interested in that problem. I hope the question is in topic here - more than in ComputerScience.SE or even LifeHacks.SE - and I think I'm more likely to find here users with related experience and expertise.
The question, formatted in a general way, is what's the most efficient and practical way to sort a set of papers. If details matter, we can assume we are ordering one hundred to a few hundreds of papers, and that we have a table but not a very large one - we can't put all the papers on the table to see all of them at the same time. However, the order key is in the top of the paper (we can assume the top inch), so we can pile a few papers and still be able to see the key. In any way, the conditions are different than those for a computer algorithm and they are less well defined.
This problem has two variants:
- The order key is the student's name - that is, given any two exams, there can be more exams that must be placed between them.
- The order key is a natural number - that is, if we find exams with successive numbers, we can be sure that no other exam will go between them.
So far, I think the most efficient way I use is to order small batches of exams - small enough that I can hold them in my hand or put them on the table while being able to see all order keys or to find them quickly - and then join batches pairwise until I get a single batch.
A different approach I've used is to bin the exams in small batches according to initial letter or by another way of making similar sized intervals, and then order every batch.
Can you say how or even whether the input data - the students' answers - differ?
I think 'how to sort a list… by computer' is no different from how to sort the same list alphabetically, except that the computer operator might need no more than seconds to re-sort a list which by hand could take hours or days.
Almost separately, why would you want to sort exam entries after grading them?
– Robbie Goodwin Mar 31 '24 at 18:32What might you need to sort before entering grades in a spreadsheet?
Definitively, it's way less efficient to sort the exams than to search in the spreadsheet for every grade you need, as I suggest you'd know if you'd tried… and most people here do know, having tried.
Giving the pile to the students would mean showing names or grades on peers' exams only if you didn't bother to eliminate those details.
Are there no experienced colleagues to turn to?
– Robbie Goodwin Mar 31 '24 at 19:26