public static int binarySearch(int [] inputSet, int element) 
{ 
   int start = 0; 
   int end = inputSet.length-1; 
   int middleValue = 0; 
   int middleIndex = 0; 
   // Dopki przeszukiwany fragment zbioru zawiera przynajmniej jeden element. 
   while ( start<=end ) 
   { 
      // Pobranie wartoci indeksu elementu znajdujcego si porodku. 
      middleIndex = (start+end) / 2; 
      // Pobranie wartoci elementu znajdujcego si porodku.
      middleValue = inputSet[middleIndex]; 
      // Porwnanie wartoci wzgldem docelowego kryterium lub elementu. 
      if ( middleValue == element ) 
      { 
         // W przypadku dopasowania mamy wynik. 
         return middleIndex; 
      } 
      else if ( middleValue > element ) 
      { 
         // Jeeli warto jest wiksza, uywamy przeszukujemy fragment zbioru [rodek,koniec].
         end = middleIndex-1; 
      }  
      else 
      { 
         // Jeeli warto jest mniejsza, przeszukujemy fragment zbioru [pocztek,rodek] 
         start = middleIndex+1; 
      } 
   } 
   // Zero elementw znajdujcych si porodku, brak dopasowania. 
   return -1; 
} 
