62,634
社区成员




int i,j;
int[] s = new int[15];
for ( i=0,j=s.length-1;i<=j; i++,j--)
{
}
意思就是说,i初始化为0,j的值小于数组的长度
其实这个形象点说,比如一个15cm的尺子的刻度吧,现在这个i就是从0前进,j就是从15往回退,条件是,只要i和j还有距离 那就走,直到两个元素重合。
public static int halfSearch(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid;
while(min<=max)
{
mid = (max+min)>>1;
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}
有点类似这个吧,折半查找,Lz体会体会 其实条件就是 只要咱们俩还有距离,那就继续取中查找