给我写一段二分查找算法代码
时间: 2023-04-02 18:03:53 浏览: 55
好的,以下是二分查找算法的代码:
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
相关问题
给我一段用js写的二分查找算法
当然!以下是使用 JavaScript 编写的二分查找算法的示例代码:
```javascript
function binarySearch(arr, target) {
var left = 0;
var right = arr.length - 1;
while (left <= right) {
var mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
// 示例用法:
var array = [2, 4, 6, 8, 10];
var target = 6;
console.log(binarySearch(array, target)); // 输出 2
```
以上代码定义了一个名为 `binarySearch` 的函数,它接受一个已排序的数组 `arr` 和目标值 `target` 作为参数。通过不断缩小搜索范围,将数组分为左右两部分,并在每次迭代中比较中间元素与目标值的大小,从而确定目标值是否存在于数组中。如果找到目标值,则返回其索引;否则,返回 -1。
请注意,二分查找算法要求输入的数组必须是已排序的数组。如果输入的数组未排序,需要先对其进行排序,然后再进行二分查找。
用PHP写一段二分查找算法
好的,以下是用 PHP 实现的二分查找算法代码:
```
<?php
function binary_search($array, $target) {
$left = 0;
$right = count($array) - 1;
while ($left <= $right) {
$middle = intval(($left + $right) / 2);
if ($array[$middle] == $target) {
return $middle;
} elseif ($array[$middle] < $target) {
$left = $middle + 1;
} else {
$right = $middle - 1;
}
}
return -1;
}
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$target = 5;
$index = binary_search($array, $target);
if ($index != -1) {
echo "在数组中找到了目标值,位置为:" . $index;
} else {
echo "未在数组中找到目标值";
}
```
该代码使用二分查找算法在给定数组中查找目标值,如果找到目标值,则返回其索引;否则返回 -1。