The following code; import java.io.File; import java.util.*; public class BinarySearch { public static int search(int key, int[] a) { return search(key, a, 0, a.length); } public static int search(int key, int[] a, int lo, int hi) { if (hi <= lo) return -(hi-1); int mid = lo + (hi - lo) / 2; int cmp = a[mid]-key; if (cmp > 0) return search(key, a, lo, mid); else if (cmp < 0) return search(key, a, mid + 1, hi); else{ if (a[mid+1]==key) return search(key,a,mid+1,hi); else{ return mid; } } } public static void main(String[] args) { String name= args[0]; int count=0; try{ Scanner scanner = new Scanner(new File(name)); while(scanner.hasNextInt()) { scanner.nextInt(); count++; } } catch(Exception e){} int a[] = new int[count]; int in=0; try{ Scanner scanner1 = new Scanner(new File(name)); while(scanner1.hasNextInt()) a[in++]=scanner1.nextInt(); } catch(Exception e){} System.out.println(search(Integer.parseInt(args[1]),a)); } } Do not know how to correct the error; Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at BinarySearch.main(BinarySearch.java:38) Any suggestion would help, Thanks
The following code;
import java.io.File; import java.util.*; public class BinarySearch { public static int search(int key, int[] a) { return search(key, a, 0, a.length); } public static int search(int key, int[] a, int lo, int hi) { if (hi <= lo) return -(hi-1); int mid = lo + (hi - lo) / 2; int cmp = a[mid]-key; if (cmp > 0) return search(key, a, lo, mid); else if (cmp < 0) return search(key, a, mid + 1, hi); else{ if (a[mid+1]==key) return search(key,a,mid+1,hi); else{ return mid; } } } public static void main(String[] args) { String name= args[0]; int count=0; try{ Scanner scanner = new Scanner(new File(name)); while(scanner.hasNextInt()) { scanner.nextInt(); count++; } } catch(Exception e){} int a[] = new int[count]; int in=0; try{ Scanner scanner1 = new Scanner(new File(name)); while(scanner1.hasNextInt()) a[in++]=scanner1.nextInt(); } catch(Exception e){} System.out.println(search(Integer.parseInt(args[1]),a)); } }
Do not know how to correct the error; Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at BinarySearch.main(BinarySearch.java:38) Any suggestion would help, Thanks
No hand written and fast answer with explanation
![](/static/compass_v2/shared-icons/check-mark.png)
Step by step
Solved in 2 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)