algorithm - 使用多个 CPU 查找最大数量的最短时间

标签 algorithm sorting max

例如,假设有 32 个数字(未排序,范围未知)和 8 个 CPU,每个 CPU 每分钟计算一次比较。

如果只有一个CPU,则需要进行31次比较。 但是使用 8 个 CPU,我们每分钟可以比较 16 个数字。

计算最大数量所需的最短时间(以分钟为单位)是多少? (我计算出来大约需要 6 分钟,但我认为可以在 5 分钟内完成,不确定算法是如何工作的。)

最佳答案

1) 32 numbers -> compare 8 pairs using 8 CPUs -> 24 numbers
2) 24 numbers -> compare 8 pairs using 8 CPUs -> 16 numbers
3) 16 numbers -> compare 8 pairs using 8 CPUs -> 8 numbers
4) 8 numbers  -> compare 4 pairs using 4 CPUs -> 4 numbers
5) 4 numbers  -> compare all numbers with each other using 6 CPUs (tetrahedron)

关于algorithm - 使用多个 CPU 查找最大数量的最短时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16593506/

相关文章:

algorithm - 获取所有可能路径的有效方法+特殊细节

C# 算法时间复杂度

algorithm - 向该结构中插入一个元素的摊销时间复杂度是多少?

c++ - std::partition 段错误问题

python - 选择列表中最早的条目

algorithm - 搜索已排序的二维矩阵

algorithm - 找到图中形成环的最重边

algorithm - 任意矩阵乘法的复杂性

objective-c - 是否有 Objective-C 或 C 数学函数来约束最小值和最大值之间的变量?

SQL Max 跨多个版本