java - 如何通过选择 2 by 2 来计算多个项目的排名
问题描述
假设我有一个包含歌曲的数组。我想制作一个程序,给用户 2 首歌曲,他们决定哪一首是他们最喜欢的。它重复这一点,直到程序可以给出从用户最喜欢到最不喜欢的所有歌曲的排名。
我试着这样做:给每首歌曲0分,检查是否有歌曲的歌曲数量相同,并询问两者中哪一首是用户最喜欢的。重复此操作,直到所有歌曲的分数不同。遗憾的是,该算法太慢了,并且多次询问相同的两首歌曲。
解决方案
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。
推荐阅读
- javascript - 在折叠面板中,所有元素同时对点击做出反应
- matlab - 如何在 MATLAB 指南针中指定区域
- spring-cloud-dataflow - 当以批处理作业作为流运行任务时,仪表板的作业部分中没有条目
- mysql - Servlet jdbc 路径
- c# - 用 C# 生成 HTML 页面 - 最佳实践
- java - Antlr - 不匹配的输入错误 - 无法识别令牌
- c++ - 如何在 ROS 的回调函数中执行耗时的任务
- swift - 如何在表格视图中插入属性列表字典
- r - 使用 Plotly 在等高线图上叠加线
- java - FXML 文件中的 getHostServices().showDocument()