我知道线性选择(中位数算法的中位数)递归方程如下:
T(n) <= an + T(n/5) + T(7n/10)
但这些术语来自哪里?我一直试图理解,但我非常困惑。谁能请一些亮点?
答案 0 :(得分:2)
最佳尝试:
这个等式仅适用于你做5组的中位数。否则它会改变。等式的一部分是算法遍历所有元素并将它们分组为5所花费的时间.T(n / 5)是为每组5找到中值所花费的时间。因为有5个组中有5个。
T(7n / 10)需要更多时间......
当你做中位数的中位数时,元素被分解为4个象限。 3/10的元素大于中位数的中位数,3/10元素小于中位数的中位数。另外4/10被分成两组,每组2/10。这些元素是您不确定它们是大于还是小于中位数的中位数的元素。因此,您可以拥有的大于或小于中位数中位数的最大元素数是3/10 + 2/10 + 2/10 = 7/10。所以T(7n / 10)是继续计算的一部分,最大数字段大于/小于中位数的中位数....
希望这样有道理。