二分查找的完整整体代码
时间: 2023-10-14 15:14:32 浏览: 40
下面是一个二分查找的完整代码实现,以查找一个有序数组中的元素为例:
```python
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
其中 `arr` 是要查找的有序数组, `target` 是要查找的目标元素。变量 `left` 代表查找范围的左边界,初始值为 0;变量 `right` 代表查找范围的右边界,初始值为数组长度减 1。进入循环后,每次将查找范围缩小一半,直到找到目标元素或者查找范围缩小到左边界大于右边界为止。如果找到目标元素,则返回该元素的下标;否则返回 -1。
相关问题
python二分查找完整代码
好的,下面是 Python 的二分查找完整代码:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# 示例使用:
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 6
result = binary_search(arr, target)
if result != -1:
print("元素在索引", result)
else:
print("元素不在列表中")
```
这个代码实现了一个二分查找算法,它接受一个已排序的数组和目标元素作为输入,返回目标元素在数组中的索引,如果目标元素不存在则返回 -1。
二分查找完整代码C语言
二分查找是一种高效的查找算法,它要求线性表必须采用顺序存储结构,并且元素按关键字有序排列。下面是C语言实现二分查找的完整代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int key, int left, int right) {
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] < key) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int key = 7;
int size = sizeof(arr) / sizeof(arr[0]);
int index = binarySearch(arr, key, 0, size - 1);
if (index != -1) {
printf("找到了,对应的下标为:%d\n", index);
} else {
printf("找不到\n");
}
return 0;
}
```