如何为2n²
,3⋅log₂(n)
和2n² + 10n
等公式找到最佳案例时间复杂度?什么是确切的程序?
答案 0 :(得分:0)
对于固定公式,最佳,平均和最差情况相同。复杂性将是
2n² ∈ Θ(n²)
3⋅log₂(n) ∈ Θ(log n)
2n² + 10n ∈ Θ(n²)
算法可能具有最佳的案例复杂性,这取决于输入。 例如。看看冒泡排序。
Input: A[0..n-1]
switched = false;
for(i = 0; i < n; i++)
{
switched = false;
for(j = 0; j < n-i-1; j++)
{
if(A[j] > A[j+1])
{
switch(A,j,j+1);
switched = true;
}
}
if(!switched)
break;
}
最糟糕的情况是从大到小的排序列表,导致O(n²)
的复杂性。但是如果您的输入是从小到大的排序列表,则算法仅执行内部for循环一次,并且由于它不必切换元素,因此算法终止。这为您提供O(n)
的最佳案例复杂性。