Question: Fix the error in this binary search algorithm. The problem The code does not work on certain data sets. Fix the sets but do not

Fix the error in this binary search algorithm.

The problem The code does not work on certain data sets. Fix the sets but do not alter the binary search algorithm.

The obvious Yes, this is a problem that can be solved with one additional statement.

/** * Binary search to fix data sets issues */ import java.util.Scanner; public class BinarySearch { /** Use binary search to find the key in the list */ public static int binarySearch(int[] list, int key) { int low = 0; int high = list.length - 1;

while (high >= low) { int mid = (low + high) / 2; if (key < list[mid]) high = mid - 1; else if (key == list[mid]) return mid; else low = mid + 1; }

return -low - 1; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int set = in.nextInt(); int key = in.nextInt(); int[][] datasets = { {}, {1,2,3,5,8,13,21,34,55,89}, {-81, -72, -63, -54, -45, -36, -27, -18, -9, 0}, {21, 34, 72, -63, 8, 5, -13, -27, -18, 1, 0, 2} }; System.out.println("Searching for key " + key + " in data set " + set + " returned " + binarySearch(datasets[set], key));

} }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!