算法1.1.22

来源:互联网 发布:用java编写水仙花数 编辑:程序博客网 时间:2024/06/01 09:23

使用1.1.6.4 节中的rank() 递归方法重新实现BinarySearch 并跟踪该方法的调用。每当该方法被调用时,打印出它的参数lo 和hi 并按照递归的深度缩进。提示:为递归方法添加一个参数来保存递归的深度。 

public static int rank(int key,int []a,int lo,int hi)
int depth=0;

        int mid=lo+(hi-lo)/2
while(lo<=hi)
{
if (key<a[mid]) 
{
return rank(key,a,lo,mid-1);
depth++;
}
else if(key>a[mid])
{
return rank(key,a,mid+1,hi);
depth++;
}
else 
return mid;
}
return -1;
}

二分查找