Python
Бинарный поиск. Алгоритм.
Напишите программу алгоритма бинарного поиска на Паскале или Питоне. Буду очень благодарна <3
Бинарного поиска чего? Поиск бисекцией значения в отсортированном массиве и поиск бисекцией корня уравнения - это два разных алгоритма.
https://pythonist.ru/algoritmy-poiska-na-python/
Первая ссылка в поисковой системе
Первая ссылка в поисковой системе
Конечно, вот пример кода на Python:
```python
def binary_search(array, target):
"""
Функция для бинарного поиска элемента в отсортированном массиве.
:param array: Отсортированный массив
:param target: Искомый элемент
:return: Индекс искомого элемента или None, если элемент не найден
"""
left = 0 # Индекс левой границы массива
right = len(array) - 1 # Индекс правой границы массива
while left <= right:
middle = (left + right) // 2 # Индекс среднего элемента массива
if array[middle] == target: # Если искомый элемент найден
return middle
elif array[middle] < target: # Если искомый элемент больше среднего
left = middle + 1 # Сдвигаем левую границу
else: # Если искомый элемент меньше среднего
right = middle - 1 # Сдвигаем правую границу
return None # Если элемент не найден
```
Эта функция принимает отсортированный массив и искомый элемент, и возвращает индекс искомого элемента в массиве, если он был найден. Если элемент не найден, функция возвращает значение None.
Алгоритм бинарного поиска заключается в том, что на каждой итерации алгоритма находится средний элемент массива. Затем искомый элемент сравнивается со средним элементом. Если они равны, то элемент найден и его индекс возвращается из функции. Если искомый элемент больше среднего, то поиск продолжается в правой половине массива. Если искомый элемент меньше среднего, то поиск продолжается в левой половине массива. Поиск продолжается до тех пор, пока не будет найден элемент или пока не будет исчерпан весь массив.
```python
def binary_search(array, target):
"""
Функция для бинарного поиска элемента в отсортированном массиве.
:param array: Отсортированный массив
:param target: Искомый элемент
:return: Индекс искомого элемента или None, если элемент не найден
"""
left = 0 # Индекс левой границы массива
right = len(array) - 1 # Индекс правой границы массива
while left <= right:
middle = (left + right) // 2 # Индекс среднего элемента массива
if array[middle] == target: # Если искомый элемент найден
return middle
elif array[middle] < target: # Если искомый элемент больше среднего
left = middle + 1 # Сдвигаем левую границу
else: # Если искомый элемент меньше среднего
right = middle - 1 # Сдвигаем правую границу
return None # Если элемент не найден
```
Эта функция принимает отсортированный массив и искомый элемент, и возвращает индекс искомого элемента в массиве, если он был найден. Если элемент не найден, функция возвращает значение None.
Алгоритм бинарного поиска заключается в том, что на каждой итерации алгоритма находится средний элемент массива. Затем искомый элемент сравнивается со средним элементом. Если они равны, то элемент найден и его индекс возвращается из функции. Если искомый элемент больше среднего, то поиск продолжается в правой половине массива. Если искомый элемент меньше среднего, то поиск продолжается в левой половине массива. Поиск продолжается до тех пор, пока не будет найден элемент или пока не будет исчерпан весь массив.
Похожие вопросы
- Алгоритмы на Питоне? Не смешите, даже самый отстойный алгоритм на C++ будет быстрее работать более экономного на Питоне.
- Алгоритм пересечения полигонов в 2D.
- Алгоритмы и структуры данных. Нужно ли все понимать? Просто там такие математические действия.
- Алгоритмическая задача. Ускорить алгоритм
- Как реализовать поиск изображения на питоне
- Помощь програмиста (Бинарные опционы)
- Построение бинарных (двоичных) деревьев худо-бедно разобрал, одно только мало понятно (...)
- Помогите разобрать "прочитать" код. Объяснить алгоритм, как от работает
- Торговля акциями. Линейные алгоритмы. Python.
- Есть способ без ста грамм разобраться в этом алгоритме?