Let’s take a look at a problem on leetcode.com, an algorithm challenge by the name of** ****Solving Search Insert Position Algorithm****. **Here, we have an algo that requires us to check and manipulate an array in a way that can be tricky, so let’s check it out!

## The Problem

As pictured above, our goal is to write a function that takes in a sorted array and a target value and returns the index of the value in the array, *or *the trickier part, the index where the value *should* be if placed in order. So if we have an array of [1,3,5,6] and a target of 5, we return the index 2. If the target is 2with that same array, we would return 1, since we would place it between 1 and 3 at the second index spot.

## The Solution

Firstly, if the array *has* the target inside of it, that’s an easy solution. We can just put a base-case at the start that checks the array for the target, and then returns the index if true. Easy-peazy.

Next, because we’re working with a sorted array and we’re looking for a specific location in the array, we can use a **binary search** to improve our efficiency. We’ll create two integer variables, **start** and **end (start initializing at 0, end initializing as the last index of our array), **and **while** **start** is less than **end,** we will go through our binary search. We’ll create a variable, **mid, **and** **define it as the rounded down average of our start and end values. Then, we will check our mid value against the target value. If it is greater than, we move our end to the mid-1 and start over. If it is less than, we move our start value to mid+1 and repeat. We do this until we find the final spot that our target should be. However, this breaks if the target should be placed at the very end of the array. Considering this, we set up a ternary operator to return either the found index or our final **start** value, which by that point should be 1 greater than our original **end** value. Our final product looks like this:

Hope this was helpful! Keep practicing those algos!