Algorithm 什么';在不同的机器上找到数字中值的最快算法是什么?

Algorithm 什么';在不同的机器上找到数字中值的最快算法是什么?,algorithm,Algorithm,如果我有m台机器,并且每台机器上都有相同数量的n个数字,那么找到所有这些数字(即所有m*n个数字)中值的最快算法是什么?我想看两种情况:每个n数字排序或未排序 有人有一些参考资料或想法可以分享吗?谢谢大家! 中位数可以在多台机器上进行调整,尤其是当它们都具有相同数量的元素时 Michael的解决方案是对quickselect的改编。它们都能工作,但quickselect通常更快,尽管它是O(nlogn)而不是中位数的O(n)的中位数。您所指的quickselect的确切复杂性是什么?IIRC其平

如果我有
m
台机器,并且每台机器上都有相同数量的
n
个数字,那么找到所有这些数字(即所有
m*n
个数字)中值的最快算法是什么?我想看两种情况:每个
n
数字排序或未排序


有人有一些参考资料或想法可以分享吗?谢谢大家!

中位数可以在多台机器上进行调整,尤其是当它们都具有相同数量的元素时


Michael的解决方案是对quickselect的改编。它们都能工作,但quickselect通常更快,尽管它是O(nlogn)而不是中位数的O(n)的中位数。

您所指的quickselect的确切复杂性是什么?IIRC其平均复杂度为O(n)。@maxim Big-oh符号表示最坏情况。我记错了:quickselect实际上是O(n^2),但通常以O(n)结束,常数比中间值的中值小得多。@b战神:当你说“中间值的中值”时,你实际上是如何在多台机器上做到的?你能提供一些细节吗?@xiang Median of medians是一个递归算法;每次迭代,它抛出(至少)列表的1/10。一种明显的并行化技术是在每台机器上找到中间值,然后生成这些中间值的新列表(在较少参与的机器上)。