Binary Search
二分查找
针对有序数据的快速查找方式
对比线性查找有不小的速度提升,但是要求数据有序
- 时间复杂度 O(log(n))
- 空间复杂度 O(1)
C++
template<typename T>
int Binary(T* D,size_t Length,T t) {
size_t left = 0,right = Length - 1;
for(size_t mid = (left + right) / 2;left <= right;mid = (left + right) / 2) {
if(D[mid] == t) {
return mid;
} else if (D[mid] > t) {
right = mid - 1;
// } else if (D[mid] < t) {
} else {
left = mid + 1;
}
}
return -1;
}