【发布时间】:2014-09-04 09:13:48
【问题描述】:
我目前正在尝试学习算法的时间复杂度、大 O 符号等。然而,有些地方让我很困惑。我知道大多数时候,数组的输入大小或我们正在处理的任何内容都决定了算法的运行时间。假设我有一个大小为N 的未排序数组,我想在不使用任何特殊算法的情况下找到该数组的最大元素。我只想遍历数组并找到最大元素。因为我的数组的大小是N,所以这个过程在O(N) 或线性时间运行。设M 是一个整数,它是N 的平方根。所以N可以写成M的平方,即M*M或M^2。所以,我认为如果我想用M^2 替换N 并没有错。我知道M^2 也是我的数组的大小,所以我的大o 符号可以写成O(M^2)。所以,我的新运行时间看起来像在二次时间中运行。为什么会这样?
【问题讨论】: