二分法查找key在[lo, hi]区间的索引,没有找到返回-1
public static int rank(double key, double[] a, int lo, int hi){
return lo>hi?-1:key<a[lo+(hi-lo)/2]?rank(key,a,lo,lo+(hi-lo)/2-1):key>a[lo+(hi-lo)/2]?rank(key,a,lo+(hi-lo)/2+1,hi):lo+(hi-lo)/2;}
哈哈哈有点反人类,但是可以正常运行,可以加个桥方法,便于调用
poblic static int rank(double key, double[] a){
return rank(key, a, 0, a.length-1);}