English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Colección Map de Java

Java Conjuntos Set

Java Entrada/Salida (I/)

Reader de Java/Writer

Otras temáticas de Java

Implementación de algoritmo de búsqueda binaria en Java

Java Ejemplo Completo

En este ejemplo, aprenderemos a implementar el algoritmo de búsqueda binaria en Java.

Antes de aprender la implementación de búsqueda binaria en Java, asegúrese de que comprenda el principio de funcionamiento del algoritmo de búsqueda binaria.

Ejemplo: Implementación de algoritmo de búsqueda binaria en Java

import java.util.Scanner;
//Búsqueda binaria en Java
class Main {
  int binarySearch(int array[], int element, int low, int high) {
    //Repetir este proceso hasta que los punteros alto (high) y bajo (low) sean iguales
    while (low <= high) {
      //Obtener el índice del elemento mid
      int mid = low + (high - low) / 2;
      //Si el elemento a buscar es el elemento mid
      if (array[mid] == element)
        return mid;
      //Si el elemento es menor que el elemento mid
      //Buscar solo en la izquierda de mid
      if (array[mid] < element)
        low = mid + 1;
      //Si el elemento es mayor que el elemento mid
      //Buscar solo en la derecha de mid
      else
        high = mid - 1;
    }
    return -1;
  }
  public static void main(String args[]) {
    //Crear un objeto de la clase Main
    Main obj = new Main();
    //Crear un array ordenado
    int[] array = { 3, 4, 5, 6, 7, 8, 9 };
    int n = array.length;
    //Obtener la entrada del usuario, el elemento a buscar
    Scanner input = new Scanner(System.in);
    System.out.println("Ingrese el elemento que desea buscar:");
    //Elemento a buscar
    int element = input.nextInt();
    input.close();
    //Llamar al método de búsqueda binaria
    //Passar parámetros: array, elemento, índice del primer y último elemento
    int result = obj.binarySearch(array, element, 0, n - 1);
    if (result == -1)
      System.out.println("No encontrado");
    else
      System.out.println("Encontrar el elemento, en el índice " + result);
  }
}

Salida1

Ingrese el elemento que desea buscar:
6
Encontrar el elemento, en el índice  3

Aquí, hemos utilizadoClase de escaneo de JavaObtener la entrada del usuario. Según la entrada del usuario, utilizamos la búsqueda binaria para verificar si el elemento existe en el array.

我们还可以使用递归调用来执行相同的任务。

  int binarySearch(int array[], int element, int low, int high) {
    if (high >= low) {
      int mid = low + (high - low) / 2;
      // 检查 mid 元素是否为搜索的元素
      if (array[mid] == element)
        return mid;
      //搜索 mid 的左半部分
      if (array[mid] > element)
        return binarySearch(array, element, low, mid - 1);
      //搜索 mid 的右半部分
      return binarySearch(array, element, mid + 1, high);
    }
    return -1;
  }

Aquí,该方法binarySearch()将调用自身,直到找到该元素或if条件失败为止。

Java Ejemplo Completo