您好,我正在试图了解中间值算法是如何工作的。在我看到的所有例子中,在算法开始执行之前,已经有一组被分割的数字。所以我无法理解这些群体是如何形成的更具体地说,在目前所研究的例子中,有9组,每组5个数,例如aka 45个数,或者4组,每组10个数,aka 40个数如果我们有n个数字呢有没有什么好的技巧可以帮助我找到它的组应该有多少元素?
最佳答案
矩量法是一种递归算法。它以一种声音的方式存在,为像QuestS排序或QuestScess这样的算法选择一个“支点”。因此,它需要在一定的时间范围内运行。
如果解释为基本情况和递归情况,可能更容易理解。
基本情况已经很清楚了。如果一个列表中的元素少于5个,那么您会发现中间值是一种非常简单的方式。
但是,如果列表至少有五个元素,则可以应用递归情况你将从你的大列表中连续抽取五组元素,找到它们的中位数,然后将其添加到一个较小的列表中。(如果有剩余的,可以忽略它们。)
如果这个新的、更小的列表足够小,您可以应用基本情况,如上所述否则,您将通过“小”列表创建另一个更小的列表。泡上肥皂,漂洗,然后重复,直到剩下的元素少于五个为止。这是你对整体中位数的估计所以它适用于任何大小的列表。
那么“五”应该有多大?嗯,结果是5是最理想的。有人在维基百科页面上对这个话题进行了复杂性分析。从本质上讲,“五”值越大,你就可以得到更多的中值,以找到“五”的中位数。不幸的是,3并没有在每次迭代中减少足够的搜索空间来作为一个值得选择的“5”。它通常需要是奇怪的,除非你想花费周期来分割元素之间的差异。
关于algorithm - 中位数大例子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21412859/