matlab 二分法查找
时间: 2023-12-09 18:36:29 浏览: 152
二分法查找
以下是在MATLAB中实现二分法查找的示例代码:
```matlab
function index = binarySearch(array, target)
% array为待查找的有序数组,target为目标值
% index为目标值在数组中的下标,若不存在则返回-1
left = 1; % 左边界
right = length(array); % 右边界
while left <= right
mid = floor((left + right) / 2); % 中间位置
if array(mid) == target
index = mid;
return;
elseif array(mid) < target
left = mid + 1;
else
right = mid - 1;
end
end
index = -1; % 未找到目标值
end
```
该函数接受两个参数:待查找的有序数组和目标值。函数返回目标值在数组中的下标,若不存在则返回-1。
函数中使用while循环实现二分法查找。首先初始化左右边界,然后计算中间位置。如果中间位置的值等于目标值,则返回该位置;如果中间位置的值小于目标值,则将左边界移动到中间位置的右侧;如果中间位置的值大于目标值,则将右边界移动到中间位置的左侧。循环直到左右边界相遇,此时如果目标值存在于数组中,则返回其下标,否则返回-1。
阅读全文