我遇到了一个作业问题:
对于一种在任意大小的整数数组中找到最大元素的最优算法的最好情况运行时间,以下哪个渐近紧密的上界是正确的?
- O(log n)
- O(n2)
- O(n)
- O(1)
- O(n log n)
根据我的理解,答案应该是 O(n),因为即使是最好情况下,我们仍然需要扫描整个数组来获取结果。请纠正我。
我遇到了一个作业问题:
对于一种在任意大小的整数数组中找到最大元素的最优算法的最好情况运行时间,以下哪个渐近紧密的上界是正确的?
- O(log n)
- O(n2)
- O(n)
- O(1)
- O(n log n)
根据我的理解,答案应该是 O(n),因为即使是最好情况下,我们仍然需要扫描整个数组来获取结果。请纠正我。
如果我们对数组中的数据一无所知,那么运行时间为O(n),在您的情况下也是如此。"大小为n的任意整数数组"意味着它可以是任何整数数组。
当数组已排序时,可以实现O(1)。 如果我们首先使用快速排序对数组进行排序,然后选择最大项,则可能出现O(nlog n)。 如果我们首先使用冒泡排序对数组进行排序,然后只选择最大项,则可能出现O(n^2)。