Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Алгоритмы Java: Core

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

Поиск элемента в массиве

static int findElementIndexByValue(int[] arr, int value) {
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == value) {
            return i;
        }
    }
    return -1;
}

int[] arr = {5, -1, 4, 0, 1, 9, 8, 7};

int value = 322;
int index = findElementIndexByValue(arr, value);

if (index != -1) {
    System.out.println("Индекс элемента " + value + " в массиве: " + index);
} else {
    System.out.println("Элемента " + value + " в массиве не существует");
}

// => "Элемента 322 в массиве не существует"

Сортировка массива

// Сортировка вставками

static void insertionSort(int[] arr) {
    for (int i = 1; i < arr.length; i++) {
        for (int k = i; k > 0; k--) {
            if (arr[k] < arr[k - 1]) {
                // меняем элементы местами
                arr[k] += arr[k - 1];
                arr[k - 1] = arr[k] - arr[k - 1];
                arr[k] = arr[k] - arr[k - 1];
            }
        }
    }
}

int[] arr = {5, -1, 4, 0, 1, 9, 8, 7};

insertionSort(arr);

System.out.println(Arrays.toString(arr)); // => [-1, 0, 1, 4, 5, 7, 8, 9]

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

static int binarySearch(int[] arr, int value) {
    int left = 0;
    int right = arr.length - 1;
    while (left <= right) {
        int middle = (left + right) / 2;
        if (arr[middle] < value) {
            left = middle + 1;
        } else if (arr[middle] > value) {
            right = middle - 1;
        } else {
            return middle;
        }
    }
    return -1;
}

int[] arr = {5, -1, 4, 0, 1, 9, 8, 7};

// Бинарный поиск работает для отсортированного массива
// Сортируем массив
insertionSort(arr);
System.out.println(Arrays.toString(arr)); // => // => [-1, 0, 1, 4, 5, 7, 8, 9]

int value = 1;
int binarySearchedIndex = binarySearch(arr, value);

if (binarySearchedIndex != -1) {
    System.out.println("Бинарный поиск: элемент " + value + " находится на позиции " + binarySearchedIndex);
} else {
    System.out.println("Элемент " + value + " не найден в массиве");
}

// => "Бинарный поиск: элемент 1 находится на позиции 2"

Дополнительные материалы

  1. Big-O

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»