0
点赞
收藏
分享

微信扫一扫

在有序表R[0..n-1]中进行二分查找,成功时返回结点的位置,失败时返回-1


public class DivideSearch {
public static void main(String args[]){
int[] data=new int[13];
for(int i=0;i<10;i++)
{
data[i]=i;
}
data[10]=12;
data[11]=14;
data[12]=16;
System.out.print(search(data,13));



public static int search(int[] data,int value)
{
int left=0;
int right=data.length-1;
int mid=(right+left)/2;

while(left<=right) //注意
{
if(data[mid]>value)
{
right=mid-1; //注意
}
else if
(data[mid]<value)
{
left=mid+1; //注意
}
else
return mid;
mid=(right+left)/2;
System.out.println(left+" "+mid+" "+right);
}
return -1;
}
}


举报

相关推荐

0 条评论