二分查找算法:
- 待查找的数组是有序的;
- 查找中间数组,为了拆分待查找的数组;
- 需要得到起止下标;
- 本文采用了递归方法(如果在第一次比较就已经找到了数组,将不需要进行递归);
- 递归是为了更快的找到数据;
- 程序里面的查分数组,只是逻辑上的查分,实际的输入数组还是完整的,在重复元素问题上,更能体现。
在这里插入代码片
package SearchTest;
import java.util.ArrayList;
import java.util.List;
/**
*
- @author Administrator
*/
public class BinarySearchTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = { 1, 1, 1, 1, 1, 11 };// 有序数列
List<Integer> tmp = binarysearch2(arr, 0, arr.length - 1, 1);
System.out.println(tmp);
}
// 编写二分查找方法,采用递归方式,数组中无重复数据的情况下
/**
*
* @param arr查找数组
* @param left左起始下标值
* @param right右边结束下标值
* @param searchVal待查找的数据
* &#