Јава програм за примену бинарног алгоритма претраживања

У овом примеру ћемо научити да имплементирамо бинарни алгоритам претраживања на Јави.

Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:

  • Јава вхиле и уради … вхиле Лооп
  • Изјава за Јава ако … друго
  • Јава низови

Пример: Јава програм за примену бинарног алгоритма претраживања

 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); ) )

Резултат 1

 Унесите елемент за претрагу: 6 Елемент пронађен у индексу 3

Овде смо користили класу Јава Сцаннер Цласс да бисмо преузели податке од корисника. На основу података корисника, користили смо бинарну претрагу да бисмо проверили да ли је елемент присутан у низу.

Рекурзивни позив такође можемо користити за извршавање истог задатка.

  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; )

Овде се метода binarySearch()позива док елемент не буде пронађен или, ifуслов не успе.

Ако желите да сазнате више о бинарном алгоритму претраживања, посетите Бинарни алгоритам претраживања.

Занимљиви Чланци...