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";
}
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP