最新公告
  • 欢迎您光临立业阁,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • java二分法查找怎么实现_Java教程


    java二分法查找怎么实现

    BinarySearch

    二分法查找,顾名思义就是要将数据每次都分成两份然后再去找到你想要的数据,

    我们可以这样去想,二分法查找很类似与我们平时玩的猜价格游戏,当你报出一个价格时裁判会告诉你价格相对于真实值的高低,倘若是低了那我们一定会再说出一个略高的价格,反之亦然。

    (相关视频教程分享:java视频教程

    在二分法查找时要求传入的数据必须已经有序,假设现在为升序,然后每次将所寻找的值与中间值(数组左边界+(右边界-左边界)/2)作比较,大了则去寻找中间值左侧数据,小则寻找中间值右侧数据。

    public class BinarySearch {
    //进行二分法查找的前提是数组已经有序!
    	public static int rank(int key,int nums[])
    	{
    		//查找范围的上下界
    		int low=0;
    		int high=nums.length-1;
    		//未查找到的返回值
    		int notFind=-1;
    		while(low<=high)
    		{
    			//二分中点=数组左边界+(右边界-左边界)/2
    			//整数类型默认取下整
    			int mid=low+(high-low)/2;
    			//中间值是如果大于key
    			if(nums[mid]>key)
    			{
    				//证明key在[low,mid-1]这个区间
    				//因为num[mid]已经判断过了所以下界要减一
    				high=mid-1;
    			}else if(nums[mid]<key)
    			{
    				//证明key在[mid+1,high]这个区间
    				//同样判断过mid对应的值要从mid+1往后判断
    				low=mid+1;
    			}
    			else
    			{
    				//查找成功
    				return mid;
    			}
    		}
    		//未成功
    		return notFind;
    	}
    	public static void main(String[] args) {
    		System.out.println("请输入数据数量:");
    		Scanner scanner=new Scanner(System.in);
    		int amount=scanner.nextInt();
    		int num;
    		int nums[]=new int[amount];
    		int i=0;
    		while(i<amount)
    		{
    			nums[i]=scanner.nextInt();
    			i++;
    		}
    		Arrays.sort(nums);
    		System.out.println("请输入想要查找的值");
    		int key=scanner.nextInt();
    		int answer=rank(key,nums);
    		if(answer!=-1)
    		{
    			System.out.println("所查找的数据存在:"+nums[answer]);
    		}
    		else
    		{
    			System.out.println("您所查找的数据不存在");
    		}
    	}
     
    }

    更多java教程,请关注liyegeJava教程栏目。

    以上就是java二分法查找怎么实现的详细内容,更多请关注liyege.cn其它相关文章!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 1154会员总数(位)
    • 111856资源总数(个)
    • 6本周发布(个)
    • 0 今日发布(个)
    • 240稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    冀ICP备19022365号-1 百度地图

    侵权联系邮箱[email protected]

    立业阁(www.liyege.cn)免费提供wordpress主题模板、dedecms模板、帝国cms模板、小说网站源码、电影网站源码以及网络技术分享,建站源码,小说模板,电影模板,网赚教程,VPS推荐