Java-programma om binair zoekalgoritme te implementeren

In dit voorbeeld zullen we leren om een ​​binair zoekalgoritme in Java te implementeren.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java while en do … while Loop
  • Java if… else-instructie
  • Java-arrays

Voorbeeld: Java-programma om binair zoekalgoritme te implementeren

 import java.util.Scanner; // Binary Search in Java class Main ( int binarySearch(int array(), int element, int low, int high) ( // Repeat until the pointers low and high meet each other while (low <= high) ( // get index of mid element int mid = low + (high - low) / 2; // if element to be searched is the mid element if (array(mid) == element) return mid; // if element is less than mid element // search only the left side of mid if (array(mid) < element) low = mid + 1; // if element is greater than mid element // search only the right side of mid else high = mid - 1; ) return -1; ) public static void main(String args()) ( // create an object of Main class Main obj = new Main(); // create a sorted array int() array = ( 3, 4, 5, 6, 7, 8, 9 ); int n = array.length; // get input from user for element to be searched Scanner input = new Scanner(System.in); System.out.println("Enter element to be searched:"); // element to be searched int element = input.nextInt(); input.close(); // call the binary search method // pass arguments: array, element, index of first and last element int result = obj.binarySearch(array, element, 0, n - 1); if (result == -1) System.out.println("Not found"); else System.out.println("Element found at index " + result); ) )

Uitgang 1

 Voer het te zoeken element in: 6 Element gevonden bij index 3

Hier hebben we de Java Scanner Class gebruikt om input van de gebruiker te krijgen. Op basis van de invoer van de gebruiker hebben we de binaire zoekopdracht gebruikt om te controleren of het element aanwezig is in de array.

We kunnen ook de recursieve aanroep gebruiken om dezelfde taak uit te voeren.

  int binarySearch(int array(), int element, int low, int high) ( if (high>= low) ( int mid = low + (high - low) / 2; // check if mid element is searched element if (array(mid) == element) return mid; // Search the left half of mid if (array(mid)> element) return binarySearch(array, element, low, mid - 1); // Search the right half of mid return binarySearch(array, element, mid + 1, high); ) return -1; )

Hier binarySearch()roept de methode zichzelf aan totdat het element is gevonden of de ifvoorwaarde mislukt.

Als je meer wilt weten over het binaire zoekalgoritme, ga dan naar Binair zoekalgoritme.

Interessante artikelen...