这个问题曾被问过一次,但没有回答,所以我想我会再次询问我的具体情况.
我正在尝试开发一个应用程序,让您放入一个离散项目列表(例如,水果),它为您提供两者之间的比较.你选择你最喜欢的两个,然后重复这个过程,直到你最终有一个按这些对象的优先顺序排序的列表(在这个例子中,按顺序排列你最喜欢的水果).
问题在于,传统的排序策略,无论多快,都必然涉及更多的操作,而不是人类在任何合理的时间内完成的操作(即使列表短至50,因为我目前的测试列表是).
由于很明显没有一个保证排序算法的复杂度足够低,我想有些补贴必须要做.有没有办法跳过大块的排序?我考虑了一些根据他们"赢得"的比较为项目分配值的方法,然后在一段时间后停止排序并假设这些值给出正确的顺序,类似于您可能解决瑞士国际象棋的风格锦标赛,如果你不能完成足够的轮次来正常确定胜利者.我不知道这是否合情合理.
一个澄清我的意思的例子:说你有一份清单
Apple Orange Kiwi Banana Melon
它会为你提供比较
Do you prefer: A Apple B Kiwi
等等,直到你有一个看起来像的列表
Kiwi Apple Orange Melon Banana
这是你对这些水果的偏好顺序.