Найти в Дзене
Введение в связанные списки в Python
Связанный список (linked list) – это структура данных, представляющая собой линейную последовательность элементов, каждый из которых содержит данные и ссылку на следующий элемент списка. В отличие от массивов или встроенных типов данных Python, таких как списки (list) или кортежи (tuple), элементы связанного списка не располагаются последовательно в памяти компьютера; вместо этого они связаны друг с другом через указатели. Существует несколько видов связанных списков: 1️⃣Односвязные (singly linked lists): Каждый узел хранит ссылку только на следующий узел...
4 месяца назад
Сложность списков в Python
Во многих языках программирования есть такая структура данных - массив. В Python это список. Все им пользуются он удобен и прост. Основная суть данной структуры - последовательное хранение определенного набора элементов. Это как большая коробка, которая хранит в себе предметы поменьше. list_example: list[int] = [1, 2, 3, 4] Если брать память - то это набор ячеек в которые мы можем поместить какие-то данные. И вот тут как раз таки появляется проблема, о которой мало кто задумывается, используя списки...
5 месяцев назад
Как угадать число от 1 до 100 за 7 шагов (максимум)
Я вам обещал,что покажу как угадать число от 1 до 100 всего за 7 шагов (в самом худшем случае). Если вы читали пост выше - то уже знаете ответ на данный вопрос. С помощью бинарного поиска мы каждый раз уменьшаем диапазон чисел в 2 раза. Давайте представим самый плохой сценарий - пользователь может говорить больше или меньше загаданное число названного нами. Загадываем 100. Если помните - основная суть, называть число из середины диапазона (номер указывает на количество попыток): 1. Начнем с 50 (пользователь говорит больше) 2...
5 месяцев назад
Сложность бинарного поиска
Недавно мы рассмотрели алгоритм линейного поиска. Он заключается в последовательном переборе элементов до нахождения нужного. Однако этот метод имеет существенный недостаток: если нужно найти число в большом списке, придется проверить каждый элемент. Например, при поиске миллиона в списке из миллиона чисел потребуется выполнить миллион итераций. Но что, если каждый раз отсекать половину списка? Тогда на поиск уйдет значительно меньше шагов. Для этого используется бинарный поиск. Его суть в том, что на каждом этапе выбирается средний элемент списка...
5 месяцев назад
Сложность простого поиска
В программировании есть концепция сложности алгоритмов. Она показывает, сколько операций потребуется в наихудшем случае для достижения результата. Принятое обозначение O() [о большое] Сравнивая сложность двух алгоритмов, можно выбрать наиболее подходящий для конкретной задачи. Давайте рассмотрим пример простого поиска перебором: def simple_search(digit_list: list[int], need_digit: int) -> tuple[int | None, int]: """ Простой поиск вхождения числа перебором. Если значения нет -None ...
5 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала