出于纯粹的兴趣,我正在尝试设计一种可以容纳任意大整数的类型。我想支持四种基本操作[+, -, *, /]
并优化这些操作的速度。
我在考虑某种双向链表和一个位标志来指示正值或负值。但我不太确定如何添加,例如,添加到大量不同尺寸。我是否应该走到两个数字的最后一个元素,然后返回(使用第二个反向指针指向前一个元素)。
123456789 //一个大数 + 123 //另一个不同大小的大数
如果我可以拥有任意大的内存,那么这个任务的最佳数据结构是什么?
对于算术运算的最坏情况复杂性,我将不胜感激。谢谢!