javascript - 排序或部分排序最小化比较

标签 javascript algorithm sorting comparison logic

我要对颜色列表进行排序或部分排序。从最美到最丑。一次比较两种颜色是由屏幕上的人进行的。我有 10 种颜色,我需要对它们进行排序或部分排序,向人类提出不太可能的问题。我愿意使用任何数据结构。我只需要从人类那里要求尽可能少的比较。我怎样才能做到这一点?我需要多少问题才能完成完整排序?如果它是部分排序,结果会是什么样子?我能从结果中得到什么?谢谢

+1 用于 javascript 示例 ;)

编辑: 我可以使用类似(如果 a>b 和 b>c 则 a>c)这样的概念,这样我就可以使用复杂的排序算法。我愿意尽可能多地包含这样的概念

我需要能够通过少于 15 次比较对 10 个元素进行排序。可能吗?

最佳答案

我不明白颜色美丑的概念。但是你有 10 种颜色,一次比较两种颜色将是 10C2 = 45(不多不少)的组合数。

var colors = [color1, color2, ....];
var i = 0, j = 0, temp = "";
while (i < 10) {
   j = i + 1;
   while (j < 10) {
      if {user_chooses_color2} {
         temp = colors[j];
         colors[j] = colors[i];
         colors[i] = temp;
      }
      j++;
   }
   i++;
}

关于javascript - 排序或部分排序最小化比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061309/

相关文章:

sorting - 使用 Kotlin 按多个条件排序

python - 如何对文本文件的内容进行排序

javascript - 从 RouteUrl 获取完整的 url

javascript - 从networkd3中提取节点信息到shiny中的 react 变量

mysql - 查看数字是否总是按序列递增

python - 在 Python 中模拟抛硬币实验

php - 在服务器端(PHP/MySQL)还是在客户端(js)排序?

Javascript 引号卷轴不适用于移动设备(Chrome、Safari...)

javascript - 将 HTML 图片添加到 Google Apps 脚本中

algorithm - 2048 启发式,意想不到的结果