【问题标题】:What is the minimal amount of basic checks, i.e "is x < y", that is needed to sort 4 elements in a best-case scenario?在最佳情况下对 4 个元素进行排序所需的最少基本检查量是多少,即“x < y”?
【发布时间】:2022-01-09 07:06:08
【问题描述】:

我收到了一个练习,提供了一种算法,该算法仅使用“is x

输入: {x_1, x_2, x_3, x_4} 的值为 {1, 2, 3, 4}

步骤 1: 如果 x_1 步骤 2 a): 如果 x_2 步骤 3 a):如果 x_3

所以在最好的情况下进行 3 次比较。但我在网上读到最低数量是 4 而不是 3。这让我很困惑。如果有人能为我澄清这一点,我将不胜感激。最好的情况真的是 3 次比较还是我的程序出错了?

澄清:1 之后的步骤有 a 和 b 选项以适应上一步的两个结果。所以步骤 2 a) 如果第一个比较为真,步骤 2 b) 如果第一个比较为假。

我没有提供整个二叉树,因为它很长,但如果有必要我可以提供。

【问题讨论】:

  • "但是我在网上看到最小数量是 4 而不是 3。"链接?
  • 你确定你的网上信息没有说“$O(N)$,而不是真正的$N$?
  • 如果您的引用声称在最佳情况下需要 4 次比较来获得 4 个元素的列表,那么您的引用显然是不正确的。
  • @500-InternalServerError 非常感谢您的确认。我怀疑它,但我不确定。我怀疑也许是逻辑上的一个错误步骤让我得出了这个结论。
  • 在没有来源的情况下,这个问题有什么用?

标签: algorithm sorting combinatorics


【解决方案1】:

您始终可以使用 n-1 比较来验证 n 个项目的列表是否以类似于您所显示的方式进行排序。如果每对相邻元素的顺序都正确,则通过归纳,列表已排序,并且有 n-1 个相邻对。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-07
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多