c# 二分查找

   // perform a binary search on the data
   public int BinarySearch( int searchElement )
   {  private int[] data;
      int low = 0; // low end of the search area
      int high = data.Length - 1; // high end of the search area
      int middle = ( low + high + 1 ) / 2; // middle element
      int location = -1; // return value; -1 if not found

      do // loop to search for element
      {
                // if the element is found at the middle
         if ( searchElement == data[ middle ] )
            location = middle; // location is the current middle

         // middle element is too high
         else if ( searchElement < data[ middle ] )
            high = middle - 1; // eliminate the higher half
         else // middle element is too low
            low = middle + 1; // eliminate the lower half

         middle = ( low + high + 1 ) / 2; // recalculate the middle
      } while ( ( low <= high ) && ( location == -1 ) );

      return location; // return location of search key
   } // end method BinarySearch 

posted @ 2008-03-26 15:30  似水流年-johnhuo  阅读(248)  评论(0编辑  收藏  举报