分治法:多项式乘法时间复杂度

Posted

技术标签:

【中文标题】分治法:多项式乘法时间复杂度【英文标题】:Divide-and-conquer: Polynomial multiplication time complexity 【发布时间】:2021-11-30 09:52:29 【问题描述】:

当我学习分而治之的方法时,我来到了这个关于多项式乘法的示例 (https://www.geeksforgeeks.org/multiply-two-polynomials-2/)。我不明白为什么添加四个结果(子问题)所需的时间是 Theta(n)。我认为添加只需要恒定的时间。为什么是线性时间?提前致谢!

【问题讨论】:

多项式相加。 【参考方案1】:

你是对的。但是这里的“将所有结果相加”是指将x的每个幂的乘法之和一起找到最终的结果,它是一个多项式,即xx^2,...的乘法之和, x^n。从这个意义上说,四个幂为O(n) 的多项式之和为O(n)

【讨论】:

以上是关于分治法:多项式乘法时间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

分治法实现两个方阵相乘

算法的时间复杂度比较,计算多项式的直接法和秦九韶法

几种算法的异同

FFT算法小结

递归与分治策略-第二节:分治和典型分治问题

做题codechefCOUNTARI——分块FFT