Sorting 如果我对一首歌曲的喜爱程度的记忆不是很好,那么对我喜爱的歌曲列表进行排序的最佳算法是什么?

Sorting 如果我对一首歌曲的喜爱程度的记忆不是很好,那么对我喜爱的歌曲列表进行排序的最佳算法是什么?,sorting,Sorting,这是一个“只是为了好玩”的问题,也是一个不同的问题 这里是“用例”:我正在整理我最喜欢的200多首歌曲的排序列表。当我听一首歌时,我可以粗略地(不精确地)估计它的效果,但除此之外,我还必须做直接的比较。我发现比较我喜欢哪首歌的最好方法是最近听了两首歌,全部都听了。如果我已经有一段时间没听过一首歌了,我会经常在比较之前再听一遍。我希望得到一个排序列表,其中所需的“重排”次数最少。显然,这里的复杂因素是,与大多数排序算法不同,如果我最近听了这两首歌,比较是相对自由的 用程序员的术语来说:检索一个项目

这是一个“只是为了好玩”的问题,也是一个不同的问题

这里是“用例”:我正在整理我最喜欢的200多首歌曲的排序列表。当我听一首歌时,我可以粗略地(不精确地)估计它的效果,但除此之外,我还必须做直接的比较。我发现比较我喜欢哪首歌的最好方法是最近听了两首歌,全部都听了。如果我已经有一段时间没听过一首歌了,我会经常在比较之前再听一遍。我希望得到一个排序列表,其中所需的“重排”次数最少。显然,这里的复杂因素是,与大多数排序算法不同,如果我最近听了这两首歌,比较是相对自由的

用程序员的术语来说:检索一个项目进行比较非常慢,一旦检索到一个项目,在检索到x个额外的项目后,它将耗尽内存,在这一点上,如果您要与该项目进行另一次比较,我必须再次检索该项目。与检索时间相比,比较本身要快得多。要比较两个项目,需要将它们都放在内存中

上面链接的前一个问题讨论了一个相同的问题,但没有涉及用于比较的数据“检索”的相对缓慢

作为奖励:假设我听一首歌的时间越长,比较结果“错误”的风险就越大,而且歌曲在“实际”排名中的位置越接近

到目前为止,我的方法是先进行初始桶排序,然后进行插入排序。从底部铲斗开始向上移动。进展缓慢。:)