public static int binarySearch(int [] inputSet, int element) 
{ 
   int start = 0; 
   int end = inputSet.length-1; 
   int middleValue = 0; 
   int middleIndex = 0; 
   // Dopóki przeszukiwany fragment zbioru zawiera przynajmniej jeden element. 
   while ( start<=end ) 
   { 
      // Pobranie wartości indeksu elementu znajdującego się pośrodku. 
      middleIndex = (start+end) / 2; 
      // Pobranie wartości elementu znajdującego się pośrodku.
      middleValue = inputSet[middleIndex]; 
      // Porównanie wartości względem docelowego kryterium lub elementu. 
      if ( middleValue == element ) 
      { 
         // W przypadku dopasowania mamy wynik. 
         return middleIndex; 
      } 
      else if ( middleValue > element ) 
      { 
         // Jeżeli wartość jest większa, używamy przeszukujemy fragment zbioru [środek,koniec].
         end = middleIndex-1; 
      }  
      else 
      { 
         // Jeżeli wartość jest mniejsza, przeszukujemy fragment zbioru [początek,środek] 
         start = middleIndex+1; 
      } 
   } 
   // Zero elementów znajdujących się pośrodku, brak dopasowania. 
   return -1; 
} 
