2018-09-07

2018-09-07  本文已影响0人  ssqssqssq

二分查找算法:

二分查找搜索的是有序表,时间复杂度是O(log(n))。需要一个辅助变量来表示是否已经找到target。

核心算法思想:

1.定义左指针left ,定义右指针right,定义中间指针mid,mid=1+(mid-1)/2; # //int mid = (r + l) / 2; //潜在bug 可能会使r+l 溢出

2.因为是有序表,所以从中间的变量开始进行查找,分三种情况:

if target==item[mid],return index;

if target > item[mid], 说明在右半部分,将left = mid+1,继续在右半部分进行查找

if target < item[mid],说明在左半部分,将right=mid-1,继续在左半部分进行查找

3.循环,查找结束。

循环条件 left < right 

代码如下:

上一篇 下一篇

猜你喜欢

热点阅读