Fix the Binary Search
EasyChallenge 6 of 20
Fix the Binary Search
EasyThis binary search implementation has a bug that causes it to fail for certain inputs. Find and fix the issue.
Challenge 6 of 20
30 XP
Community Solutions
AlgorithmsSearchingArrays
Exit ChallengeTest Cases
0/3 passingTest Case #1
Input: binarySearch([1, 2, 3, 4, 5], 3)
Expected: 2
Run tests to see results
Test Case #2
Input: binarySearch([1, 2, 3, 4, 5], 5)
Expected: 4
Run tests to see results
Test Case #3
Input: binarySearch([1, 2, 3, 4, 5], 6)
Expected: -1
Run tests to see results
solution.js
1
<span class="token keyword">function</span> binarySearch(arr, target) {
<span class="token keyword">let</span> left = <span <span class="token keyword">class</span>="token number">0</span>;
<span class="token keyword">let</span> right = arr.length;
<span class="token keyword">while</span> (left < right) {
<span class="token keyword">let</span> mid = Math.floor((left + right) / <span <span class="token keyword">class</span>="token number">2</span>);
<span class="token keyword">if</span> (arr[mid] === target) {
<span class="token keyword">return</span> mid;
} <span class="token keyword">else</span> <span class="token keyword">if</span> (arr[mid] < target) {
left = mid;
} <span class="token keyword">else</span> {
right = mid;
}
}
<span class="token keyword">return</span> -<span <span class="token keyword">class</span>="token number">1</span>; <span <span class="token keyword">class</span>=<span <span class="token keyword">class</span>="token string">"token comment"</span>>// Not found</span>
}Console
Run your code to see output here