Algorithm 排序算法,使涉及单个项目的最大比较次数最小化

Algorithm 排序算法,使涉及单个项目的最大比较次数最小化,algorithm,sorting,Algorithm,Sorting,我感兴趣的是找到一种比较排序算法,该算法可以最小化在算法运行期间每个元素与其他元素进行比较的次数 对于随机排序的列表,我感兴趣的是两种分布:排序列表所需的比较数量(这是传统标准)和列表中每个元素所涉及的比较数量 在比较次数方面表现良好的算法中,比如说平均达到O(n log(n)),我想找出一种算法,平均而言,一个元素与其他元素比较的次数最少 我假设理论上的最小值是O(log(n)),它是通过将上面的数字除以比较的总数n得到的 我还对数据可能已经在某种程度上被订购的情况感兴趣 也许模拟是寻找答案的

我感兴趣的是找到一种比较排序算法,该算法可以最小化在算法运行期间每个元素与其他元素进行比较的次数

对于随机排序的列表,我感兴趣的是两种分布:排序列表所需的比较数量(这是传统标准)和列表中每个元素所涉及的比较数量

在比较次数方面表现良好的算法中,比如说平均达到O(n log(n)),我想找出一种算法,平均而言,一个元素与其他元素比较的次数最少

我假设理论上的最小值是O(log(n)),它是通过将上面的数字除以比较的总数n得到的

我还对数据可能已经在某种程度上被订购的情况感兴趣

也许模拟是寻找答案的最佳方式


(我之前的问题已被搁置-这是一个非常明确的问题,如果您不理解,请解释原因)

是的,您肯定应该进行模拟。
在这里,您将以一种比您提出的一般问题更具体的方式隐式设置大小和预排序约束

然而,总的来说,这类问题可能没有一个明确的答案

Big-O处理渐近行为,而您的问题
似乎针对较小的问题规模。因此,Big-O可以提示足够大的输入集用于排序运行的最佳候选者。(但是,例如,如果您对尺寸感兴趣是的,您肯定应该进行模拟。
在这里,您将以一种比您提出的一般问题更具体的方式隐式设置大小和预排序约束

然而,总的来说,这类问题可能没有一个明确的答案

Big-O处理渐近行为,而您的问题
似乎是针对较小的问题规模。因此,Big-O可以提示足够大的输入集用于排序运行的最佳候选者。(但是,例如,如果您对大小感兴趣,程序员stackexchange可能是解决此问题的更好地方,请参阅:@rpy:平均值是指长度为n的列表的预期数字,假设所有初始顺序的可能性都相同。举个具体的例子,您可能想考虑使用一种算法,该算法可以提供比较结果,但不提供实际数据。)进行这些比较(例如图片/想法之间)的注释;在这种情况下,目标是尽可能减少比较的繁琐。@nibarius在参考其他网站时,指出@gnat这是一个很好的观点是很有帮助的,谢谢你指出。我可能应该提到,未来类似这样的帖子可能应该交给程序员,因为你自己不能迁移帖子对于这个问题,程序员stackexchange可能是一个更好的地方,请参阅:@rpy:平均值是指长度为n的列表的预期数量,假设所有初始顺序的可能性都相同。例如,您可能想考虑使用一种算法来进行比较,但实际的人进行比较(例如,在图片/想法之间);在这种情况下,目标是尽可能减少比较的繁琐。@nibarius在参考其他网站时,指出@gnat这是一个好的观点通常是有帮助的,谢谢你指出。我可能应该提到,未来类似这样的帖子可能应该交给程序员,因为你自己不能迁移帖子。