二进制搜索适用于排序的数组。将该值与数组的中间元素进行比较。如果找不到相等,则消除其中不存在该值的一半。同样,搜索另一半。
这是数组中的中间元素。假设我们需要找到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"; }