#бинарный_поиск — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #бинарный_поиск, aggregated by home.social.
-
Бинарный поиск: от угадывания чисел до эффективных алгоритмов
Говорят, что 90% программистов не могут написать бинарный поиск без ошибок с первого раза. Вроде бы простая логика: делим массив пополам и ищем. Но почему тогда программы «падают» на больших числах или уходят в бесконечный цикл? В этой статье мы разберем бинпоиск «на пальцах», напишем идеальный код и посмотрим на анимациях, как именно работают «тиски» этого алгоритма.
https://habr.com/ru/articles/984760/
#бинарный_поиск #binary_search #программирование_для_начинающих #собеседование #сложность_алгоритмов
-
Бинарный поиск: от угадывания чисел до эффективных алгоритмов
Говорят, что 90% программистов не могут написать бинарный поиск без ошибок с первого раза. Вроде бы простая логика: делим массив пополам и ищем. Но почему тогда программы «падают» на больших числах или уходят в бесконечный цикл? В этой статье мы разберем бинпоиск «на пальцах», напишем идеальный код и посмотрим на анимациях, как именно работают «тиски» этого алгоритма.
https://habr.com/ru/articles/984760/
#бинарный_поиск #binary_search #программирование_для_начинающих #собеседование #сложность_алгоритмов
-
Бинарный поиск: от угадывания чисел до эффективных алгоритмов
Говорят, что 90% программистов не могут написать бинарный поиск без ошибок с первого раза. Вроде бы простая логика: делим массив пополам и ищем. Но почему тогда программы «падают» на больших числах или уходят в бесконечный цикл? В этой статье мы разберем бинпоиск «на пальцах», напишем идеальный код и посмотрим на анимациях, как именно работают «тиски» этого алгоритма.
https://habr.com/ru/articles/984760/
#бинарный_поиск #binary_search #программирование_для_начинающих #собеседование #сложность_алгоритмов
-
Бинарный поиск: от угадывания чисел до эффективных алгоритмов
Говорят, что 90% программистов не могут написать бинарный поиск без ошибок с первого раза. Вроде бы простая логика: делим массив пополам и ищем. Но почему тогда программы «падают» на больших числах или уходят в бесконечный цикл? В этой статье мы разберем бинпоиск «на пальцах», напишем идеальный код и посмотрим на анимациях, как именно работают «тиски» этого алгоритма.
https://habr.com/ru/articles/984760/
#бинарный_поиск #binary_search #программирование_для_начинающих #собеседование #сложность_алгоритмов
-
Бинарные деревья — решение алгоритмических задач, часть 1
Есть много статей, в том числе и на хабре, где подробно рассказывается про бинарные деревья как про структуру данных. В этой статье я больше сосредоточусь на подходах к решению алгоритмических задач, где используются бинарные деревья. Немного теории для общего понимания сути. Бинарное дерево - это иерархические структура данных, в которой каждый узел имеет не более двух дочерних узлов. Узлы обычно называются правыми и левыми потомками. При этом каждый из потомков, в свою очередь тоже является узлом, который может иметь двух потомков. Если у узла нет потомков, такой узел называют листом. Кстати, у меня есть телеграм-канал, где пишу подходы к решениям всяких задачек с LeetCode, там больше разборов конкретных задач, чем здесь, потому что не всегда нужна статья. В общем, если интересно - жду здесь - t.me/crushiteasy :)
https://habr.com/ru/articles/835706/
#бинарные_деревья #бинарный_поиск #bfs #dfs #алгоритмы #алгоритмы_поиска #структуры_данных #java #программирование #leetcode
-
Использование алгоритма бинарного поиска для нахождения квадратного корня числа на Java
Наткнулась на leetcode на задачку с нахождением квадратного корня из неотрицального числа. Кажется, что для решения такой задачки отлично подходит бинарный поиск, который по итогу даст нам логарифмическую временную сложность. Итак, условие задачи здесь: https://leetcode.com/problems/sqrtx/description/ Но прежде чем приступить к решению, пройдемся по теории, что такое бинарный поиск и как его использовать. Бинарный поиск - это поисковый алгоритм, который позволяет найти элемент в отсортированном массиве с логарифмической сложностью . Массив делится пополам, искомый элемент сравнивается с серединой массива, если искомый элемент больше, то поиск переходит в правую часть массива, и наоборот. После каждого перехода в правую или левую часть будет происходить сравнение серединного элемента с искомым до тех пор, пока он не будет найден. Акцентирую внимание еще раз: массив должен быть отсортирован по возрастанию. Если массив не отсортирован, то сортировка потребует минимум O(log n * n) временной сложности, что нужно учитывать. Поэтому, если массив небольшой и неупорядоченный, то, скорее всего, лучше будет линейный поиск со сложностью O(n). Итак, теперь вернемся к нашей задачке. Нужно найти квадратный корень из неотрицательного числа, где само число может быть любым от 0 до 2 31 - 1. Если корень из числа извлекается с остатком, например, корень из 8 это 2.82842…, то нужно округлить в меньшую сторону до целого, т.е. в данном случае до 2. Начнем, по порядку, ограничив краевые случаи. Так, если х = 0, то можно сразу вернуть 0.
https://habr.com/ru/articles/832212/
#алгоритмы #алгоритмы_поиска #программирование #разработка #java #бинарный_поиск #подготовка_к_собеседованиям
-
Flat-контейнеры в C++
Привет, Хабр! Еще в C++23 появились «плоские» ассоциативные контейнеры: std::flat_set , std::flat_map и их многоключевые аналоги. Проще говоря, это полные аналоги обычных std::set и std::map , но реализованные иначе – через упорядоченный последовательный контейнер (по умолчанию std::vector ). Зачем вообще понадобились эти штуки? Официальная причина – экономия памяти и выигрыш в производительности при чтении данных.
https://habr.com/ru/companies/otus/articles/940306/
#C++ #c++23 #ассоциативные_контейнеры #производительность #оптимизация_памяти #бинарный_поиск #итераторы
-
Бинарный поиск
В этой статье мы познакомимся с бинарным поиском с примером на JavaScript, а так же сравним бинарный поиск и линейным.
https://habr.com/ru/articles/783848/
#бинарный_поиск #линейный_поиск #сложность_алгоритмов #javascript #open_js
-
Бинарный поиск на пальцах
В этой статье мы разберемся с тем, как работают массивы, что такое алгоритмы, и как устроен бинарный поиск "под капотом"
https://habr.com/ru/articles/832024/
#заметки_джависта #алгоритмы #java #binary_search #бинарный_поиск #бинарный_поиск_в_массиве #массив #массивы_данных #массивы_в_java
-
Поиск элемента в массиве: от простого к эффективному
Данная статья посвящена разбору одной из простых тем, связанную с поиском элемента в массиве. Мы разберем, как найти элемент в массиве, какие существуют алгоритмы, а также обсудим их асимптотические сложности. Для написания кода будем использовать Python. Итак, представим простую задачу: у нас есть массив, состоящий из 10 чисел: [1, 6, 3, 9, 0, 23, 5, 55, -23, 7] . Необходимо найти индекс элемента со значением -23. Первое наивное решение, которое приходит в голову, пройтись по всем элементам массива, сравнивая их с искомым числом. Если текущий элемент не равен числу, двигаемся дальше, иначе мы нашли искомое число и возвращаем его индекс. Простой алгоритм на Python выглядит так: