matlab实现对有序数组的⼆分查
%⼆分查法matlab数组赋值
%设计思想;对于⼀个有序的列表或数组,对⼆分查的⽅式进⾏元素查
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.拼写错误导致输出变量没有赋值
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论