What is the time complexity of the binary search algorithm?

Click For Summary
SUMMARY

The time complexity of the binary search algorithm is established as O(log n) in the worst case. The recurrence relation for the algorithm is T(n) = T(⌊n/2⌋) + 10, where n represents the number of elements being searched. The initial condition is T(0) = 2, which accounts for the scenario when there are no elements to search. This analysis confirms that binary search is efficient for sorted arrays, significantly reducing the search space with each recursive call.

PREREQUISITES
  • Understanding of binary search algorithm
  • Familiarity with recurrence relations
  • Basic knowledge of time complexity analysis
  • Experience with programming concepts (e.g., recursion)
NEXT STEPS
  • Study the Master Theorem for solving recurrence relations
  • Learn about different searching algorithms and their complexities
  • Explore the implementation of binary search in various programming languages
  • Investigate the impact of data structure choices on search performance
USEFUL FOR

Software developers, computer science students, and anyone interested in algorithm optimization and performance analysis will benefit from this discussion.

  • #31
evinda said:
Will the resursion-tree be like that?

View attachment 3390

If so, for which value of $n$ will it end? And how can I find the last value that it will take? (Thinking)

It would help if you specify at each level the fraction of $n$. (Worried)

At the top level you are calculating for $T(n)$.
One level down for $T(\lfloor\frac n 2\rfloor)$.
Etcetera, until we get to $T(0)$ for which the cost is $2$.

To get a sense of this, perhaps we can pick an example for say $n=8$. (Mmm)
And perhaps another one for $n=11$.
 
Technology news on Phys.org
  • #32
I like Serena said:
It would help if you specify at each level the fraction of $n$. (Worried)

At the top level you are calculating for $T(n)$.
One level down for $T(\lfloor\frac n 2\rfloor)$.
Etcetera, until we get to $T(0)$ for which the cost is $2$.

To get a sense of this, perhaps we can pick an example for say $n=8$. (Mmm)
And perhaps another one for $n=11$.

I am confused now.. (Sweating)

It is:

$$T(8)=T(4)+10=(T(2)+10)+10=T(1)+30=T(0)+40=12$$

$$T(11)=T(5)+10=T(2)+20=T(1)+30=12$$

But, how can could we make the recursion-tree? (Thinking)
 
  • #33
evinda said:
I am confused now.. (Sweating)

It is:

$$T(8)=T(4)+10=(T(2)+10)+10=T(1)+30=T(0)+40=12$$

$$T(11)=T(5)+10=T(2)+20=T(1)+30=12$$

But, how can could we make the recursion-tree? (Thinking)

Like this:
\begin{array}{|c|c|}
\hline
& \text{cost tree}\\
\hline
n=8 & 10 \\
& \downarrow \\
\lfloor n/2\rfloor =4 & 10 \\
& \downarrow \\
\lfloor \lfloor n/2\rfloor / 2\rfloor=\lfloor n/4\rfloor=2 & 10 \\
& \downarrow \\
\lfloor n/8\rfloor=1 & 10 \\
& \downarrow \\
\lfloor n/16\rfloor=0 & 2 \\
\hline
\text{Total }T(n) & 42 \\
\hline
\end{array}

How many times do we have $10$? (Wondering)
 
  • #34
I like Serena said:
Like this:
\begin{array}{|c|c|}
\hline
& \text{cost tree}\\
\hline
n=8 & 10 \\
& \downarrow \\
\lfloor n/2\rfloor =4 & 10 \\
& \downarrow \\
\lfloor \lfloor n/2\rfloor / 2\rfloor=\lfloor n/4\rfloor=2 & 10 \\
& \downarrow \\
\lfloor n/8\rfloor=1 & 10 \\
& \downarrow \\
\lfloor n/16\rfloor=0 & 2 \\
\hline
\text{Total }T(n) & 42 \\
\hline
\end{array}

How many times do we have $10$? (Wondering)

$$\lfloor \frac{8}{2}\rfloor \text{ times, right? }$$

(Thinking)
 
  • #35
evinda said:
$$\lfloor \frac{8}{2}\rfloor \text{ times, right? }$$

(Thinking)

Let's do it for $n=11$ as well:
\begin{array}{|c|c|}
\hline
& \text{cost tree}\\
\hline
n=11 & 10 \\
& \downarrow \\
\lfloor n/2\rfloor =5 & 10 \\
& \downarrow \\
\lfloor \lfloor n/2\rfloor / 2\rfloor=\lfloor n/4\rfloor=2 & 10 \\
& \downarrow \\
\lfloor n/8\rfloor=1 & 10 \\
& \downarrow \\
\lfloor n/16\rfloor=0 & 2 \\
\hline
\text{Total }T(n) & 42 \\
\hline
\end{array}

Is it $\lfloor \frac{11}{2}\rfloor$ times that we have $10$? (Wondering)
 
  • #36
I like Serena said:
Let's do it for $n=11$ as well:
\begin{array}{|c|c|}
\hline
& \text{cost tree}\\
\hline
n=11 & 10 \\
& \downarrow \\
\lfloor n/2\rfloor =5 & 10 \\
& \downarrow \\
\lfloor \lfloor n/2\rfloor / 2\rfloor=\lfloor n/4\rfloor=2 & 10 \\
& \downarrow \\
\lfloor n/8\rfloor=1 & 10 \\
& \downarrow \\
\lfloor n/16\rfloor=0 & 2 \\
\hline
\text{Total }T(n) & 42 \\
\hline
\end{array}

Is it $\lfloor \frac{11}{2}\rfloor$ times that we have $10$? (Wondering)

No, we have $4$ times cost $10$, and not $5$. (Worried)

How could we find a general formula? (Thinking)

Is it maybe:

$$\sum_{i=0}^{i-1} 10+2$$

(Thinking)
 
  • #37
evinda said:
No, we have $4$ times cost $10$, and not $5$. (Worried)

How could we find a general formula? (Thinking)

Is it maybe:

$$\sum_{i=0}^{i-1} 10+2$$

(Thinking)

That doesn't look like a proper formula! :eek:

Anyway, I'm off to sleep now. (Sleepy)
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
3K
Replies
20
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 30 ·
2
Replies
30
Views
6K
  • · Replies 27 ·
Replies
27
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K