C# 中的二分查找


二分查找适用于已排序的数组。值比起始元素中间的元素。如果找不到相等的值,则除掉其中不包含该值的一半部分。以同样的方式,搜索另一半部分。

下面是我们数组中的中间元素。现在我们假设需要找到 62,则需要除掉左侧部分,然后搜索右侧部分:

这是二分查找的复杂度:

最差情况下的执行效率
O(log n)
最优情况下的执行效率
O(1)
平均执行效率
O(log n)
最差情况下空间的复杂度
O(1)

示例

我们来看二分查找的方法:

public static object BinarySearchDisplay(int[] arr, int key) {
   int minNum = 0;
   int maxNum = arr.Length - 1;

   while (minNum <=maxNum) {
      int mid = (minNum + maxNum) / 2;
      if (key == arr[mid]) {
         return ++mid;
      } else if (key < arr[mid]) {
         max = mid - 1;
      }else {
         min = mid + 1;
      }
   }
   return "None";
}

更新时间:19-Jun-2020

10 千次+ 浏览

开启你的 职业生涯

完成课程,获得认证

开始入门
广告