Binary Search(Java) (非递归)

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;
}

 

你可能感兴趣的:(Algorithm)