**MISSION 36**

# Binary Search

In the previous module, you learned that an algorithm is a well-defined series of steps for performing a task. Toward the end of the module, you learned a specific type of algorithm called linear search. While linear search can be helpful in some situations, it is sometimes a naive approach to a situation.

In this module, you'll learn another algorithm — binary search — and improve your knowledge of data structures and algorithms.

As this module progresses, we'll show you how binary search is different from linear search, why it is more efficient, and how to code binary search from scratch. While learning binary search, you will analyze NBA player data.

You'll learn several important concepts such as pseudo-code, binary search, time complexity of binary search, and more.

Learning about algorithms can be tough without any hands-on practice. That's why as you work through each concept, you’ll get to apply what you’ve learned from within your browser — there's no need to use your own machine to do the exercises. The Python environment inside of this course includes answer checking so you can ensure that you've fully mastered each concept.

#### Objectives

#### Lesson Outline

1. Let's Play a Game

2. A Better Strategy

3. When can we use binary search?

4. Implementing Binary Search: Part 1

5. Implementing Binary Search: Part 2

6. Pseudo-Code

7. Implementing Binary Search: Part 3

8. Implementing Binary Search: Part 4

9. Binary Search Time Complexity Analysis

10. Takeaways