/
**
* 好长时间没有写算法了,以前学的都已经忘了,现在为了就业开始从新学习算法和java的数据结构
* 也算是继续学习吧!
* 这次写二分法的模板,题意:在array数组中(从小到大),找出数值k对应数组中
* 的最小位置或者最大位置(前提是k一定在数组中)
*
* 好长时间没有写算法了,以前学的都已经忘了,现在为了就业开始从新学习算法和java的数据结构
* 也算是继续学习吧!
* 这次写二分法的模板,题意:在array数组中(从小到大),找出数值k对应数组中
* 的最小位置或者最大位置(前提是k一定在数组中)
*
* */
public static int getPostion(int[] array, int k) {
int left = -1, right = array.length;
while (right-left>1) {
int mid = (right+left)/2;
// 如果想找最大位置就去掉等号,返回值为left
if (array[mid]>=k) {
// 一定在[left-mid]之间
right = mid;
} else {
// 一定在[mid-right]
left = mid;
}
}
return right;
}