在Java二进制搜索 [英] Binary search in java

查看:114
本文介绍了在Java二进制搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用Java实现二进制搜索,没有工作...不知道为什么,它总是给我一个错误说多少没有被发现...

我不知道为什么,我没有看到任何错误:•感谢您的帮助...

 公共无效busquedaBinaria(INT [] arreglo,诠释buscar){        INT炫酷= 0; //中间
        INT劣= 0;
        INT优越= arreglo.length - 1;
        布尔encontrado = FALSE; //发现标志        而(劣质< =上级)
        {
            炫酷=(+优越劣)/ 2;              如果(arreglo [中心] == buscar){
                  的System.out.println( - 号+ buscar + + +中心的发现,位置);
                  encontrado = TRUE;
                  打破;
              }
              否则,如果(arreglo [炫酷> buscar){
                  优越的炫酷= - 1;
              }
              其他{
                  劣质=炫酷+ 1;
              }
              的System.out.println(中心);
        }        如果(encontrado == FALSE){
            的System.out.println( - 号+ buscar +还没有被发现。);
        }
    }


解决方案

您可以使用阵列#的binarySearch 集合#的binarySearch ,它已经在库中提供。

I am trying to implement a binary search in Java, doesn't work... don't know why, It always gives me an error saying the number wasn't found...

I am not sure why, I'm not seeing any error :S thanks for your help...

public void busquedaBinaria(int[] arreglo, int buscar) {        

        int centro = 0; //middle
        int inferior = 0;
        int superior = arreglo.length - 1;
        boolean encontrado = false; //found flag

        while(inferior <= superior)
        {
            centro = (superior + inferior) / 2;            

              if (arreglo[centro] == buscar){
                  System.out.println("-Number " + buscar + " found in the " + centro + " position.");
                  encontrado=true;
                  break;
              }
              else if (arreglo[centro] > buscar) {
                  superior = centro - 1;
              }
              else{
                  inferior = centro + 1;
              }     
              System.out.println(centro);
        }

        if (encontrado == false) {
            System.out.println("-Number " + buscar + " hasn't been found.");
        }
    }

解决方案

You can use Arrays#binarySearch or Collections#binarySearch, which are already available in library.

这篇关于在Java二进制搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆