2014-01-31 14 views
1

我有2个链表,表示非常大的数字(不能保存在除链接列表以外的其他任何内容中)。 我有一个复杂度为O(n)的Add方法。 我想知道是否有可能以任何方式乘2号没有整个列表转换为字符串/ INT /长(计算上的列表中,如果可能的话),并保持在一个复杂度O(N^2 )。乘以2个链表代表非常大的数字,可能的最低复杂度?

现在,不管我怎么努力,我得到一个为O(n^3)的复杂性,它不是足够好。

感谢所有帮助。

+0

是不是主要是语言无关的问题吗?你可能会离开java标签来吸引.NET和Python以及......群众。还结帐:http://cs.stackexchange.com/ – Peter

+0

你是对的,生病了,谢谢。 – MarkosDarkin

回答

1

"long multiplication"算法大多数西方人在学校里学到的已经给你O(N²)的复杂性,所以也许你能解释一下你用的是什么算法。

有算法复杂度较低:Karatsuba,Tom-CookSchönhage–Strassen algorithm。最后一个知道迄今为止已知的最低复杂度O(n log n log log n),但是可能还有更好的算法尚待发现。