二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
在有序序列中,使用二分查找算法搜索目标元素的核心思想是:
不断地缩小搜索区域,降低查找目标元素的难度。
时间复杂度
假使总共有n个元素,那么二分后每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。
最坏的情况是K次二分之后,每个区间的大小为1,找到想要的元素
令n/2^k=1,
可得k=log2n,(是以2为底,n的对数),时间复杂度可以表示O()=O(logn)
二分查找算法(递归)
public static int BinarySearch(int[] array,int target,int left , int right){
if (left>right){