【发布时间】:2015-03-21 06:12:22
【问题描述】:
这是“C 中的数据结构和算法分析”练习 3.7 中的练习。 假设在链表中实现了两个多项式。一个有 M 项。另一个有 N 项。练习要求我在 O(M^2N) 中实现两个多项式的乘法(假设 M 是较小的那个)。如何解决?
【问题讨论】:
-
最好能展示你目前写的代码并提出具体问题。
-
不,我指的是(M 的平方)乘以 N。
-
程序太长,无法粘贴到这里。但到目前为止,我编写了一个具有 O(MNlog(MN)) 时间复杂度的乘法函数。这个想法是首先使用多项式 A 的每一项乘以多项式 B 的每一项,然后我将得到 MN 个新项。然后根据项的指数以不递减的顺序对这 MN 个项进行排序。我使用的排序算法是归并排序。然后最后检查所有已排序的项以将具有相同指数的项组合起来。
-
对不起,我忘记了问题的一项要求。乘法的答案必须按项的指数降序排序。
标签: c algorithm list linked-list polynomial-math