在整数余数和除法的运行时复杂度中出现的输入大小是多少?

问题描述 投票:0回答:1

我试图找出现代计算机中整数的余数和除法的运行时复杂性。无论使用哪种算法,我经常会发现输入大小定义为用于存储被除整数的位数。我发现该定义不明确。假定要除的数字之一是10:可以用4位存储。但是,从程序员的角度来看,如果将10存储在int类型的变量中,并且使用的编程语言使用int表示为32位,则将使用32位存储10。在上述示例中,哪个值表示出现在运行时复杂度中的输入大小? 4位还是32位?

time-complexity big-o cpu division integer-division
1个回答
1
投票

在上述示例中,哪个值表示出现在运行时复杂度中的输入大小? 4位还是32位?

输入大小是执行操作的ALU占用的位数(或更确切地说,ALU中的算法要操作多少位)-它完全取决于CPU架构和您或您生成的代码编译器。

从技术上讲,没有什么可以阻止您设计具有32位寄存器和8位ALU的CPU的,该ALU只能接受寄存器的最低8位作为其输入(当然,这样的CPU会完全无法忍受,但完全有可能)。而且,如果有多个ALU(例如8位和64位),则没有什么可以阻止您或编译器使用任何您喜欢的东西,只要指令集体系结构为您提供了这种自由。

不可能对您的问题给出普遍的答案,因为它与特定的实现没有特别的联系。

© www.soinside.com 2019 - 2024. All rights reserved.