Здравствуйте, ребята, сегодня я собираюсь показать вам двоичный алгоритм поиска в JavaScript и Python.
Давайте начнем…
Двоичный поиск – бинарный поиск – это метод поиска, которая работает на подходе на разрыв и завоевание. Он использовался для поиска любого элемента в отсортированном массиве. По сравнению с линейным двоичным поиском гораздо быстрее со временем сложности O (logn), тогда как алгоритм линейного поиска работает в сложности O (n).
Вход: ARM [] = {1, 3, 5, 7, 8, 9} Выход: Элемент найден!
Вход: ARM [] = {1, 3, 5, 7, 8, 9} Выход: Элемент не найден!
Реализация JavaScript –
function BinarySearch(arr, x) {
let start=0, end=arr.length-1;
// Iterate while start not meets end
while (start<=end){
// Find the mid index
let mid=Math.floor((start + end)/2);
// If element is present at mid, return True
if (arr[mid]===x){
console.log(arr[mid]);
return true;
}
// Else look in left or right half accordingly
else if (arr[mid] < x)
start = mid + 1;
else
end = mid - 1;
}
return false;
}
const arr = [1,0,90,899,6,4,67,343,901];
const result = BinarySearch(arr,10) ? 'Element found' : 'Element not found';
console.log(result);
Выход – 343 элемент найден
Реализация Python –
import math
def binarysearch(Arr,element):
start = 0
end = len(Arr) - 1
while start <= end:
mid = start + (end - start) // 2;
if Arr[mid] == element:
print(Arr[element])
return True
elif Arr[mid] < element:
start = mid + 1
else:
end = mid - 1
return -1
items = [1,2,3,4,5,6,7,8,9,10]
result ='Element found' if binarysearch(items,5) else 'Element not found'
print(result)
Выход – 6 найденных элементов
ПРИМЕЧАНИЕ – Этот блог находится только для академических целей, а для студентов, которые хотят изучать двоичную поисковую реализацию для своих ученых.
Спасибо за чтение этого поста, и если вы хотите дать какое-либо предложение или найти любую ошибку, пожалуйста, укажите его в разделе комментариев
Источник – https://www.geeksforgeks.org/
Оригинал: “https://dev.to/shubhamtiwari909/dsa-binary-search-algorithm-1461”