我通过完成过去的测试来练习即将进行的测试。其中一个问题要求我确定算法的最坏情况时间复杂度(在Big-O中)。在查看以下算法时,我不确定思维过程的正确性:
Adjusting the color values of each Pixel in a Picture with height N and width M.
如果我们考虑调整图片中每个VERTICAL(N)像素的颜色值的更简单的情况,那么该算法将简单地为O(N)。当我们考虑WIDTH(M)时,我们需要乘以M * N,因为对于每一行像素都有一个水平像素。因此,我得出结论,上述算法的最差时间复杂度为O(M * N)。
任何帮助或提示将不胜感激!谢谢!
答案 0 :(得分:4)
假设"调整每个像素的颜色值"需要一段时间,你的推理是正确的,因为有N*M
像素,复杂度为O(N*M)
。
为了您的信息,为了使您的答案更加完整,您还应该提及假设,即您假设"调整每个像素的颜色值"需要不断的时间。如果该过程(重复N*M
次)采用O(M)
,则算法为O(N*M*M)
,因为对于每个像素,您需要执行O(M)
操作。< / p>