编写一个程序,实现二分查找

 我来答
若以下回答无法解决问题,邀请你更新回答
stonefk
推荐于2017-09-05
知道答主
回答量:49
采纳率:0%
帮助的人:28.3万
展开全部
import java.util.Scanner;

public class BinarySearch
{
public BinarySearch(){}
//算法实现
public int binarySearch(int[] a,int n,int index)
{
//int[] a是一个有序的数组(由小到大)
//n 要查找的数
//index n在数组中位置
int left=0;
int right=a.length-1;
while(left<=right)
{
int middle=(left+right)/2;
if(n==a[middle])
{
index=middle;
break;
}
if(n>a[middle])
{
left=middle+1;
}else
{
right=middle-1;
}
index=-1;
}
return index;
}

public static void main(String[] agrs)
{
Scanner s=null;

//int[] a=new int[]{1,2,3,4,5};

int[] a=new int[5];
//输入数组中的数
System.out.println("enter the numbers");
for(int i=0;i<5;i++)
{
s=new Scanner(System.in);
a[i]=s.nextInt();
}
//int n=3;
//输入要查找的数
System.out.println("enter your find numbers:");
int n=new Scanner(System.in).nextInt();
//索引位置
int index=0;

int f=new BinarySearch().binarySearch(a,n,index);
System.out.println("index is:\n"+f);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式