二分查找(递归+while)、LIS(动态规划+二分)、
lowerBound、upperBound
/**
*用while代替递归的二分查找
* @param array
* @parram target
* @return target的位置
*/
public static int binarySearch(int[] array,int target){
int low = 0;
int high = array.length-1; /**注意! while时low high初始值定义一次 而后在while中切分(二分) */
int middle = 0;
if(target < array[low] || target > array[high] || array[low] > array[high] ){
return -1;
}
while(low <= high){
/**注意! 此处比较下标(直到二分到一个数剩下为止)*/
middle = (low + high)/