Question: The problem The code does not work on certain data sets. Fix the sets but do not alter the binary search algorithm. /** * Binary

The problem

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

/** * 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!