跳到主要内容位置

Best-Worst-and-Average-case-Analysis

  1. Linear search
  2. binary search tree

we have a array A:

8612597431618
0123456789

key = 7, means we need search 6 times key = 20, means we need find 10 times

Best Cases

Best case: searching key element presented at first index Best case Time: O(1)O(1), so B(n)=O(1)B(n) = O(1)

Worst Cases

Worst case: searching key element presented at last index Worst case Time: O(n)O(n), so W(n)=O(n)W(n) = O(n)

Average Cases

Average case:

possible case timeno. of cases\frac{\text{possible case time}}{\text{no. of cases}}

average time=1+2+3+...+nn=nn+12n=n+12\text{average time} = \frac{1+2+3+...+n}{n} = \frac{n \cdot \frac{n+1}{2}}{n} = \frac{n+1}{2}

B(n)=1B(n) = 1, B(n)=O(1)B(n) = O(1), B(n)=Ω(1)B(n) = \Omega(1), B(n)=Θ(1)B(n) = \Theta(1)

W(n)=nW(n) = n, W(n)=O(n)W(n) = O(n), W(n)=Ω(n)W(n) = \Omega(n), W(n)=Θ(n)W(n) = \Theta(n)

note: best cases and worst cases can use any symbol to represent

  • using OO to represent bad cases
  • using Ω\Omega to represent best cases

key = 49 means we need search 3 times height = log2n = log2 8 = 3