matlab实现对有序数组的二分查找

本文详细介绍了二分查找法的设计思想及其实现过程,适用于有序列表或数组的元素查找。通过MATLAB函数binary_search实现,讲解了如何设置数组下标、进行二分查找并返回元素下标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%二分查找法
%设计思想;对于一个有序的列表或数组,对二分查找的方式进行元素查找
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.拼写错误导致输出变量没有赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值