C#实现二分法查找算法

时间:2022-10-27 18:29:25
  1. /// <summary>  
  2. /// 二分法查找  
  3. /// </summary>  
  4. /// <param name="arr"></param>  
  5. /// <param name="key">要查找的对象</param>  
  6. public static int BinarySearch(int[] arr,int value)  
  7. {  
  8.     int low = 0;  
  9.     int high = arr.Length - 1;  
  10.     while(low<=high)  
  11.     {  
  12.         int middle = (low + high) / 2;  
  13.         if (value == arr[middle])  
  14.         {  
  15.             return middle;//如果找到了就直接返回这个元素的索引  
  16.         }  
  17.         else if(value >arr[middle])  
  18.         {  
  19.             low = middle + 1;  
  20.         }  
  21.         else  
  22.         {  
  23.             high = middle - 1;  
  24.         }  
  25.     }  
  26.     return -1;//如果找不到就返回-1;  
  27. }