我的问题是关于语义,还有一些关于理论与实践的关系。
假设您有一个可以是任意数量的项目表。而且假设您在表格中有一系列可见项目(屏幕上的项目)。可见单元阵列的大小受屏幕大小的限制。这是一个已知值。也许它会因设备和屏幕尺寸而异,但屏幕尺寸可能会有所不同,但可以说这是一个很小的数字,比如20或更少。
现在,如果你要迭代可见项,理论上这是一个线性算法(迭代一个项目列表),但我的问题是,从实际的软件工程角度来看,考虑/近似这个是安全的算法作为恒定时间算法?
基本上,n <20的O(n)近似为20 * O(1)。
你们都在想什么?
答案 0 :(得分:0)
考虑将20个或更少的项目作为常量时间操作进行迭代是完全正确的。
请注意,可见项目的数量与整个数组中所有项目的数量无关,这是输入的大小。时间复杂度始终是输入大小的函数。
例如,如果您将输入的大小加倍,则仍会迭代超过20个可见项。