• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
  • Scott Selikoff
  • Piet Souris
  • Carey Brown


Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi well I writing a program that use binarysearh and it looks an array and search for query and then say query found or not found; the program compile. however when I try to run it It shows and error saying:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 49
at InsertionSort.BinSearch(InsertionSort.java:35)
at InsertionSort.main(InsertionSort.java:21)
please help me this my code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class InsertionSort
public static void main(String[] args) throws IOException
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader console = new BufferedReader(reader);
int n = 100;
int[] array = new int[args.length];
System.out.print("Enter query: ");
String s = console.readLine();
int q = Integer.parseInt(s);
// StopWatch sWatch = new StopWatch();
// sWatch.start();
int index = BinSearch(array, q, 0, n-1);
// sWatch.stop();
if (index < 0)
System.out.println("Query is not found");
System.out.println("Query is found at position ");

public static int BinSearch(int[] a, int q, int start, int finish)
if (start > finish) return (-1);
int mid = (start + finish) /2;
int diff = q - a[mid];
if (diff == 0)
return (mid);
else if (diff < 0)
return BinSearch(a, q, start, mid-1);
return BinSearch(a, q, mid+1, finish);
author & internet detective
Posts: 40198
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your BinSearch algorithm assumes there are 100 elements in the array. But when you declare the array as
array is the same size as however many arguments are passed in the command line when you run the program. Since you probably aren't typing in 100 numbers, this is causing the problem.
So I left, I came home, and I ate some pie. And then I read this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
    Bookmark Topic Watch Topic
  • New Topic