二分搜索法
二分搜索法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法运算终止。
前提是:有序数组
步骤
-
令L为0,R为n− 1。
-
如果L>R,则搜索以失败告终。
-
令m(中间值元素)为“(L+R) / 2”加上下高斯符号。
-
如果Am<T,令L为m+ 1并回到步骤二。
-
如果Am>T,令R为m- 1并回到步骤二。
-
当Am=T,搜索结束;回传值m。
这个迭代步骤会持续通过两个变量追踪搜索的边界。有些实际应用会在算法的最后放入相等比较,让比较循环更快,但平均而言会多一层迭代。