python - 使用最小元素比较对 5 个元素进行排序

标签 python sorting knuth

我必须在 python 中使用元素之间的最少比较次数对排序 5 个元素的列表的执行计划进行建模。除此之外,复杂性无关紧要。

结果是一个对列表,表示在另一时间对列表进行排序所需的比较。

我知道有一种算法可以在 7 次比较中执行此操作(在元素之间,总是,不考虑复杂性),但我找不到可读(对我来说)的版本。

如何在 7 次比较中对 5 个元素进行排序,并为排序构建“执行计划”?

PD:不是家庭作业。

最佳答案

嗯,元素的排序方式有 5!=120 种。每次比较都会为您提供一位信息,因此您至少需要进行 k 次比较,其中 2^k >= 120。您可以检查 2^7 = 128,因此 7 是您需要执行的最少比较次数。

关于python - 使用最小元素比较对 5 个元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11706501/

相关文章:

python - 使用 scipy.stats.multivariate_normal.pdf 时出现错误 :operands could not be broadcast together with shapes (1, 8) (21,)

python - Tensorflow:GPU 加速仅在首次运行后发生

python - PyCharm 终端错误

arrays - 为什么数字重复?

linux - Bash/Linux 使用自定义字段分隔符按第 3 列排序

c++ - 使用 Dancing Links 精确覆盖

python - 将求值表达式传递给 Python 中的递归时出现问题

algorithm - 较大循环串中的最小循环子串

algorithm - 目的是通过内存操作将 MMIX 汇编中的最低有效位设置为 0?

linux - 是否可以对 QTreeWidget 列中的数字进行排序?