matlab实现二分法查找

本文介绍了如何在MATLAB中使用二分法进行查找操作,以提高查询效率。通过对比线性查找,强调了二分法在处理大量数据时的优势,并提供了一段MATLAB实现二分查找的代码示例。
摘要由CSDN通过智能技术生成

上次谈到matlab实现数据的位图数结构,实现大量数据的排序和存储,节省时间和空间。
那么还是没有解决大量数据中查询特定数值的问题,有相关的解决办法,比如说,线性查找,即一个一个数据判断是否为真。
举个例子说,我们要用线性查找的办法判定n=100这个数值是否在1--250之间,将1--250之间的数字存储到a数组中,然后从从第一个数字开始,一个一个数字挨次做判断,n?=a(i),等于即为真,否则i++,那么做判断的次数的期望值即为250/2=125,得出最少要做125次才能判定n这个数是否存在于数组中。当遇到庞大的数据时候,这种方法显然力不从心,会浪费很多时间。

下面介绍用matlab实现二分法的查找,这将会打来很大的方便。
二分法的查找时通过记录数组中包含n(假设n在数组a中的某个位置)的元素范围的方式来解决问题。
注意:数组a已经使用位图数据结构的方法排序;
最初这个范围将是整个数组,将数组的中间元素和n进行比较,去掉该范围的一半以缩小范围。连续进行该程序,直到数组中发现n为止或者直到发现包含n的范围不存在时为止。在具有b个元素的数组a中,二分法大约要进行log2(b)次的查找。
到此看官可以关掉网页自己动手用熟悉的软件编译二分法查找的程序,有些代码看起来很简单,却要花费很多时间编译无bug的代码。历史上,knuth在其<sorting and searching>一书中指出,尽管第一个二分法查找的程序与1964年就已经公布,但第一个无bug的二分法查找程序直到1962年才出现。

 

下面是用matlab中实现二分法的查找的代码:

 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值