数据结构与算法分析

算法

折半查找算法

目标:对一个有序列表进行折半查找。

前置条件;列表元素按照升序排列并被存储在一个数组a中。这个列表具有n个元素,这里n是一个正整数。Item是被查找的值,它的类型和数组元素的类型相同。

后置条件:如果查找成功,found为真,而mid是item在数组中的位置;否则,found为假。

void binarySearch(NumberArray a, ElementType item, bool &found, int &mid)

{

                       int first = 0,                 //当前被搜索的子列表的第一个和最后一个位置

                            last= n - 1;             

                       found = false;

 

                       while(first <= last && !found)

                       {

                            mid= (first + last) / 2;

                            if(item < a[mid])

                            {

                                     last = mid - 1;

                            }

                            else if (item > a[mid])

                            {

                                     first = mid + 1;

                            }

                            else

                            {

                                     found = true;

                            }

                       }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值