0

我的问题有点关于语义,还有一点关于理论与实践的问题。

假设您有一个可以是任意数量的数字的项目表。假设您在表格中有一系列可见项目(屏幕上的项目)。可见单元阵列的大小受屏幕大小的限制。这是一个已知值。也许它会因设备和屏幕尺寸而异,但可以肯定地说它是一个很小的数字,比如 20 或更少。

现在,如果您要迭代可见项目,理论上这是一个线性算法(迭代项目列表),但是我的问题是,从实际软件工程的角度来看,考虑/近似这个算法是否安全恒定时间算法?

基本上,n<20 的 O(n) 近似于 20 * O(1)。

大家怎么看?

4

1 回答 1

0

将迭代超过 20 个或更少的项目视为恒定时间操作是完全正确的。

请注意,可见项目的数量与整个数组中所有项目的数量无关,即输入的大小。时间复杂度始终是输入大小的函数。

例如,如果将输入的大小加倍,您仍然会迭代 20 多个可见项。

于 2013-09-05T00:42:41.000 回答