%二分查找法
%设计思想;对于一个有序的列表或数组,对二分查找的方式进行元素查找
function [result_index] = binary_search(array,element)
%array 有序数组
%element 查找元素
%result_index 输出下标
low = 1; %设置数组下标
high = length(array);%设置数组上标
%进行二分查找
%使用选择多分支语句
while low <= high %设定查找终止条件
mid = fix((low + high)/2); %得到整数值
if array(mid) == element %如果数组对应位置元素相等
result_index = mid;
return ; %跳出循环返回
end
if array(mid) < element %如果数组对应元素小于,则需要改变下标值
low = mid + 1;
else %如果数组对应元素大于,则需要改变上标值
high = mid - 1;
end
if low > high %如果数组对应元素上下标大小对换,默认输出方式
result_index = NaN;
return ;
end
end
end
注意:1.分请脚本文件和函数文件,二则不能放在一起运行。
2.matlab数组下标是从1开始。
3.3/2不能自动取整,需用fix()函数左取整
4.拼写错误导致输出变量没有赋值