首页 > 解决方案 > 如何通过选择 2 by 2 来计算多个项目的排名

问题描述

假设我有一个包含歌曲的数组。我想制作一个程序,给用户 2 首歌曲,他们决定哪一首是他们最喜欢的。它重复这一点,直到程序可以给出从用户最喜欢到最不喜欢的所有歌曲的排名。

我试着这样做:给每首歌曲0分,检查是否有歌曲的歌曲数量相同,并询问两者中哪一首是用户最喜欢的。重复此操作,直到所有歌曲的分数不同。遗憾的是,该算法太慢了,并且多次询问相同的两首歌曲。

标签: javaalgorithmsortingoptimizationranking

解决方案


let a = ["Christmas", "Halloween", "Thanksgiving", "NY"];
a.sort((a, b) => confirm(`${a} is yes, ${b} is no`) ? -1 : 1);

例如,这是一些 JS。@user58697 是对的,这只是一个排序问题,因为您正在创建一个基于两个输入的订单。等效算法在 Java 中是微不足道的,但取决于您使用的是 JavaFX、Swing 还是 AWT。


推荐阅读