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 

转载于:https://www.cnblogs.com/encounter/archive/2008/03/26/2188825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值