# Linear & Binary Search

Learn the concepts behind linear and binary search before implementing them in Python. Test your knowledge with two quizzes.

Start## Key Concepts

Review core concepts you need to learn to master this subject

Searching for smallest or largest value using linear search

Linear Search best case

Linear Search Complexity

Linear Search expressed as a Function

Return value of a linear search

Modification of linear search function

Linear search

Linear search as a part of complex searching problems

Searching for smallest or largest value using linear search

Searching for smallest or largest value using linear search

```
function getHighestValueUsingLinearSearch(array) {
// highest value is the first value to start with
let highest = array[0];
for(let i = 1; i < array.length; i++) {
if(highest < array[i]) {
highest = array[i];
}
}
return highest;
}
```

Linear search can be used to search for the smallest or largest value in an unsorted list rather than searching for a match. It can do so by keeping track of the largest (or smallest) value and updating as necessary as the algorithm iterates through the dataset.

- 1Imagine that you are a DJ at a party. The diagram on the right shows your playlist for the event. A party guest wants to know if “Uptown Funk” by Bruno Mars is a song on your playlist. You would …
- 2Linear search can be used to search for a desired value in a list. It achieves this by examining each of the elements and comparing it with the search element starting with the first element to the…
- 3Linear search is not considered the most efficient search algorithm, especially for lists of large magnitudes. However, linear search is a great choice if you expect to find the target value at the…
- 4There are two worst cases for linear search.
**Case 1:**when the target value at the end of the list. … - 5If this search was used 1000 times on 1000 different lists, some of them would be the best case, some the worst. For most searches, it would be somewhere in between. On average it would be in the…
- 6Linear search runs in linear time. Its efficiency can be expressed as a linear function, with the number of comparisons to find a target increasing linearly as the size of the list, N, increases. …

- 1With a sorted data-set, we can take advantage of the ordering to make a sort which is more efficient than going element by element. Let’s say you were looking up the word “Telescope” in the dictio…
- 2Play with this interactive visualization demonstrating binary search. Refresh the page to play again with a different list.
- 3How efficient is binary search? In each iteration, we are
**cutting the list in half.**The time complexity is O(log N). A sorted list of 64 elements will take**at most**log 2 (64) = 6 compari…

- 1The
*linear search*algorithm checks whether a value is an element in a list by scanning the elements of a list one-by-one. The algorithm’s iterative approach to finding a target value is useful… - 2Linear search is used to search for a target value in a list. We examine each of the elements in the list and compare them with the target value until matching the target. If a match is found, the…
- 3In the text editor, you will find the code for the linear_search() function that we implemented in Python. When called, our function returns either an index of an element that matches the target …
- 4With a few changes to our code, we can modify linear search to solve more complex search problems. Our linear search function, linear_search(), currently finds whether one given value exists in a …
- 5The largest value of a sorted list conveniently is the last element of a list. The largest value of an unsorted list, however, is not guaranteed to be the last element. Imagine that you are a te…

- 1Binary search is an efficient algorithm for finding values in a sorted data-set. Let’s implement this algorithm in Python! Here’s a recap of the algorithm: * **Check the middle value of the data…
- 2We now have a base case for when we do not find the value in our sorted list, but we need a base case for when we DO find the value. At this step, we have three options: *
**BASE CASE:**mid_val … - 3With both of our base cases covered, we’ll turn our attention to the recursive step. We have two options depending on the comparison of mid_val to target. You’ll recall that our data-set is sorte…
- 4Congratulations, you implemented a version of the binary search algorithm using recursion! Let’s recap how we solved this problem: 1. We know our inputs will be sorted, which helps us make assert…
- 5Anything recursive can be written iteratively. As a final exercise, we’ll implement the binary search algorithm using iteration. Our strategy remains largely the same as the recursive approach w…

## How you'll master it

Stress-test your knowledge with quizzes that help commit syntax to memory