Бинарный поиск в Java

Бинарный поиск - это алгоритм поиска элемента в отсортированном массиве или списке, который выполняется путем постоянного деления пространства поиска пополам. Это эффективный алгоритм поиска, который имеет логарифмическую сложность времени выполнения O(log n), где n - размер массива или списка.

Вот пример реализации бинарного поиска на Java:

java
public class BinarySearch {
    public static int binarySearch(int[] arr, int key) {
        int left = 0;
        int right = arr.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (arr[mid] == key) {
                return mid;
            }
            if (arr[mid] < key) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        return -1;
    }
    public static void main(String[] args) {
        int[] arr = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
        int key = 23;
        int result = binarySearch(arr, key);
        if (result == -1) {
            System.out.println("Элемент не найден");
        } else {
            System.out.println("Элемент найден в индексе " + result);
        }
    }
}

В данном примере мы ищем элемент с ключом 23 в отсортированном массиве arr. Процесс поиска выполняется путем деления массива пополам и сравнения центрального элемента с ключом. Если ключ равен центральному элементу, мы возвращаем индекс этого элемента. Если ключ меньше центрального элемента, мы исключаем правую половину массива из рассмотрения и продолжаем поиск в левой половине. Если ключ больше центрального элемента, мы исключаем левую половину массива и продолжаем поиск в правой половине. Процесс продолжается до тех пор, пока не найден элемент или пока не останется элементов для рассмотрения.

В результате выполнения программы будет выведено:

"Элемент найден в индексе 5", т.к. элемент с ключом 23 находится в позиции 5 в массиве arr.

Обратите внимание, что перед использованием бинарного поиска массив должен быть предварительно отсортирован по возрастанию или убыванию, чтобы алгоритм работал корректно.

Похожие вопросы на: "бинарный поиск java "

How to Read CSV Files: A Comprehensive Guide
Гугл транслейтер: быстрый и удобный перевод текстов на любой язык мира
PHP Компилятор - Создание быстрого и эффективного кода
Сортировка по desc и asc в SQL
Mastering Transparent Backgrounds: Your Key to Stunning Designs
Как развернуть массив в JavaScript: примеры и объяснения
Траст Пилот - проверка доверия сайтов и безопасность в интернете
Convert RTF to DOCX
<h1>Laravel Eloquent: Powerful and Elegant Database Toolkit
<h1>SQL Boolean: All You Need to Know