Everyone is familiar with most recently used files lists in software and in OSs like Windows.
Some programs just sort by time. I've always been fairly annoyed at this. Others like Windows take usage count into consideration. Some move the item halfway to the top each time it is used, which seems to make sense.
Rather than me blindly guessing at what combination of calculations might be nicest for my end users, is there some well-known most helpful standard for end-user recently-used lists?
(My searches turn up information about MRU caching, but I can't tell how applicable any of that is; it's server efficiency facing vs user efficiency facing.)
-
2$\begingroup$ Doesn't the fact that you've observed different programs doing different things indicate that there's no standard? In any case, I'm not sure this is a computer science question. $\endgroup$David Richerby– David Richerby2016年06月14日 12:34:47 +00:00Commented Jun 14, 2016 at 12:34
-
$\begingroup$ That's not true for other things, for example anything web-related. I was directed here from Stack Overflow. :-( $\endgroup$jnm2– jnm22016年06月14日 12:40:32 +00:00Commented Jun 14, 2016 at 12:40
-
1$\begingroup$ That's the problem with questions that are borderline: they tend to get bounced around with everybody saying "Not here! Try these guys!" until the poor asker finds themself in a cycle. :-( $\endgroup$David Richerby– David Richerby2016年06月14日 14:18:07 +00:00Commented Jun 14, 2016 at 14:18
-
1$\begingroup$ I'm not sure. But you can make yourself an account there and ask on their chat room (just link them to this question and ask if they think it would be better there than here). If they think it's a good match, you can flag it here and ask for it to be moved. $\endgroup$David Richerby– David Richerby2016年06月14日 16:08:38 +00:00Commented Jun 14, 2016 at 16:08
-
1$\begingroup$ @DavidRicherby Since there's an answer straight from the data structures textbook, I think the question is fair for this site. Not the user-interface part, but the data representation part. $\endgroup$Raphael– Raphael2016年08月13日 16:19:52 +00:00Commented Aug 13, 2016 at 16:19
2 Answers 2
This concept is indeed known in data structures as self-adjusting/-organizing lists. Possible strategies include
- move the accessed element to the front,
- maintain a sorted list by (potentially degrading) counts, and
- move the accessed element one step towards the front.
Many more strategies are possible; which is most suitable depends a lot on the specific situation.
The recently used file list is a sort of cache for your user that saves them lookups. There are many different caching strategies. Wikipedia has an overview article about Cache algorithms.
However, since you're dealing with humans here, a good caching algorithm for a computer might be confusing to your users. For example, random replacement is very simple to implement and works decently well for processor caches, but I would hate it if a program used that for its recently used file list. So maybe you want to do A/B testing, or other kinds of Usability engineering to find out what works best for your audience.