折半查找,也称为二分查找,是一种用于在有序数组中查找特定元素的高效算法。在本篇博文中,我们将深入了解折半查找的原理、代码实现以及一些应用场景。
一、折半查找原理
折半查找的主要思想是通过将有序数组分成两部分,然后比较待查找元素与数组中间元素的大小,从而确定待查找元素可能存在的部分。通过逐步缩小查找范围,最终可以找到目标元素。
二、折半查找步骤
- 定义mid。
- 若low<=high,计算中间索引mid为 (low+high) / 2。
- 比较待查找元素与中间元素的大小。
- 如果中间元素等于待查找元素,返回中间索引。
- 如果中间元素大于待查找元素,更新high为mid-1。
- 如果中间元素小于待查找元素,更新low为mid+1。
- 重复步骤2~3,直到low大于high,查找失败。
三、折半查找代码实现
以下是使用C++实现折半查找的示例代码:
int binarySearch(int arr[],int low,int high,int elem) {
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == elem) {
return mid;
}
else if (arr[mid] > elem) {
high = mid-1;
}
else {
low = mid+1;
}
}
return -1;
}
四、总结
折半查找是一种高效的算法,适用于有序数组中的元素查找,时间复杂度是O(logn)。通过逐步缩小查找范围,可以快速定位目标元素。
8511

被折叠的 条评论
为什么被折叠?



