public static int rank(int[] array, int k)
{
int front = 0, rear = array.length - 1; while(front <= rear) //front = rear时, mid必与front和rear指向同一个元素
{
int mid = front + (rear - front) / 2;
if(k > array[mid]) front = mid + 1;
else if(k < array[mid]) rear = mid -1;
else return mid;
}
return -1;
}
相关文章
- leetcode 108 Convert Sorted Array to Binary Search Tree ----- java
- 【LeetCode】108. Convert Sorted Array to Binary Search Tree 解题报告 (Java & Python)
- Java遍历文件夹的两种方法(非递归和递归)
- java栈实现二叉树的非递归遍历的示例代码
- Java编程用栈来求解汉诺塔问题的代码实例(非递归)
- Java基于栈方式解决汉诺塔问题实例【递归与非递归算法】
- java创建二叉树并实现非递归中序遍历二叉树
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- JAVA递归与非递归实现斐波那契数列
- java非递归实现之二叉树的前中后序遍历详解