Alrededor de la mitad, se puede ir a ver Gran Hermano escribió este blog:
https://blog.csdn.net/CCSGTC/article/details/80586181#commentBox
Version1: ordenados, la longitud es n, un conjunto ordenado de elementos no repetidos, el índice de matriz de 0 a n-1, para encontrar las x de posición.
int td(int n, int x)
{
int l=0, r=n-1, m;
while(l<=r) //左右边界交错后,说明没有元素可以查找了,这时不符合循环条件
{
m = (l+r)/2; //每次折半,看区间中间的元素
if (t[m]==x) return m; //该元素等于x,直接return,返回找到的位置
else if (t[m]<x) l = m + 1;//该元素小于x,说明x此时处在右半区间,把左边界往右边缩
else if (t[m]>x) r = m - 1;//该元素大于x,说明x此时处在左半区间,把右边界往左边缩
}
return l;
}
Si es así, devuelve el índice de posición x correspondiente, si no, hay una gran variedad de elementos y mayor que x, y devuelve la posición de un primer índice de elemento de mayor que x, si no, y los elementos de la matriz son de menos de x, devoluciones n.