数据结构查找算法源码
时间: 2024-05-31 14:05:55 浏览: 131
数据结构 查找算法 源代码
4星 · 用户满意度95%
数据结构中的查找算法主要包括线性查找和二分查找两种。其中,线性查找适用于无序表,时间复杂度为O(n);而二分查找适用于有序表,时间复杂度为O(logn)。
下面是二分查找的C++源码示例:
```c++
int binarySearch(int arr[], int left, int right, int target) {
if (left > right) {
return -1;
}
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
return binarySearch(arr, left, mid - 1, target);
} else {
return binarySearch(arr, mid + 1, right, target);
}
}
```
上述代码中,二分查找函数 `binarySearch` 的参数依次为:待查找数组 `arr`、左边界 `left`、右边界 `right`、目标值 `target`。函数内部使用递归实现二分查找,当左边界大于右边界时,表明未找到目标值,返回-1;若中间值等于目标值,则返回中间值下标;否则,若中间值大于目标值,则在左半部分继续查找;若中间值小于目标值,则在右半部分继续查找。
阅读全文