Какво представлява двоичното търсене в Java? Как да го приложим?



Двоично търсене в Java е алгоритъм за търсене, който намира позицията на целева стойност в сортиран масив. В тази статия ще ви кажа как да го приложите с помощта на пример.

Алгоритмите за търсене и сортиране са популярни алгоритми на всякакви езици за програмиране. Те са основата за разбиране на основите на програмирането. Един такъв популярен алгоритъм за търсене е двоично търсене в . В тази статия ще ви разкажа всичко за нейното изпълнение.

По-долу са разгледани темите в тази статия:





Да започваме!

Какво е двоично търсене?

Двоично търсене в е алгоритъм за търсене, който намира позицията на целева стойност в сортирано масив . Двоично търсене сравнява целевата стойност със средния елемент на масива. Тоработи само върху сортиран набор от елементи. За да използвате двоично търсене в колекция, първо трябва да се сортира.



Програма за двоично търсене в Java - Двоично търсене в Java - EdurekaКогато се използва за извършване на операции върху сортиран набор, броят на итерациите винаги може да бъде намален въз основа на търсената стойност. Можете да видите в горната снимка на намирането на среден елемент . Аналогията на бинарното търсене е да се използва информацията, която масивът е сортиран и да се намали сложността на времето до O (log n) .

Внедряване на двоичен алгоритъм за търсене

Нека да разгледаме псевдо кода по-долу, за да го разберем по-добре.

Процедура binary_search A & larr сортиран масив n & larr размер на масива x & larr Стойност за търсене Задайте ниско = 1 Задайте високо = n, докато x не е намерено, ако е високо

Обяснение:



Етап 1: Първо, сравнете x със средния елемент.

Стъпка 2: Ако x съвпада със средния елемент, тогава трябва да върнете средния индекс.

Стъпка 3: В противен случай, ако x е по-голямо от средния елемент, тогава x може да лежи само в дясната половина на масива след средния елемент. Следователно повтаряте дясната половина.

Стъпка 4: В противен случай, ако (x е по-малък), тогава повторете за лявата половина.

Ето как трябва да търсите елемента в дадения масив.

подниз в пример на SQL сървър

Нека сега видим как да приложим двоичен алгоритъм за търсене рекурсивно. По-долу програмата демонстрира същото.

Рекурсивно двоично търсене

публичен клас BinarySearch {// Java реализация на рекурсивно двоично търсене // Връща индекс на x, ако присъства в arr [l..h], в противен случай връща -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Ако елементът присъства в самата среда, ако (a [mid] == x) return mid // If element е по-малък от средата, тогава той може да присъства само в левия подмасив, ако (a [mid]> x) return binarySearch (arr, l, mid - 1, x) // В противен случай елементът може да присъства само в десния подмасив return binarySearch (arr, mid + 1, h, x)} // Достигаме до тук, когато елементът не присъства в масива return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Елементът не присъства') else System.out.println ('Елементът е намерен при индекс' + res)}}

При изпълнение на горната програма тя ще намери елемента, присъстващ в конкретния индекс

Елементът е намерен в индекс 2

Така че това ни води до края на двоичното търсене в Java статия. Надявам се, че сте намерили информативно и сте ви помогнали да разберете .

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване, за да станете освен тези въпроси за интервю за Java. Ние изготвяме учебна програма, която е предназначена за студенти и професионалисти, които искат да бъдат разработчик на Java. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

В случай, че се сблъскате с някакви затруднения, докато внедрявате Binary Search в , моля, споменете го в раздела за коментари по-долу и ние ще се свържем с вас най-рано.