【发布时间】:2013-07-15 04:58:18
【问题描述】:
假设我拥有 100 个视频游戏,我想将它们从最喜欢到最不喜欢的顺序排列。很难给每个视频游戏一个代表我有多喜欢它的数值,所以我想把它们相互比较。
我想出的一个解决方案是随机选择 2 个视频游戏,然后选择我更喜欢的一个,然后丢弃另一个。不幸的是,这个解决方案只让我知道排名第一的视频游戏,因为那将是最后一个,并且几乎没有提供关于其他游戏的信息。然后我可以对其他 99 个视频游戏重复这个过程,等等,但这是非常不切实际的:O(n^2)。
是否有任何 O(n)(或只是合理的)算法可用于根据相关标准对数据进行排序?
【问题讨论】:
-
嗯,您需要以某种方式为每个游戏分配一个值,以显示您对它的使用程度。
-
由于绝对值是“不准确的”,也许有一种折中的方法:以某种方式同时使用绝对排名和相对排名。
-
你真的有必要有一个确切的订单吗?为什么不把它们放在五个桶里(讨厌的、不喜欢的、矛盾的、喜欢的、喜欢的)?或者您是否使用此示例作为其他排名问题的代理?
-
确实不需要确切的顺序,因此存储桶建议可以很好地工作。谢谢。
-
我怀疑你甚至不能同意你自己的独特排名(我认为我不能为我自己的游戏、电影或你拥有的东西这样做);您对游戏的偏好可能无法传递,因此如果您在这三者之间有几对,那么您很可能会陷入 a > b、b > c、a