Python - Полный Курс для Начинающих
Big O в Python: Как не утонуть в океане алгоритмов, или Почему ваш код тормозит как черепаха в сиропе
(С примерами из жизни, шутками и намёком на просветление, но это не точно) Представьте, что вы готовите утренний кофе. Вы можете: 1. Взять чашку из шкафа (O(1)). 2. Перебрать все шкафы в поисках чашки (O(n)). 3. Устроить квест с проверкой каждой полки, каждой чашки и их обсуждением с котом (O(n²)). Big O — это ваш гид по выбору оптимального пути. А если вы выбрали третий вариант, возможно, кофе вам уже не поможет. Big O — это способ описать, как время работы или память алгоритма растут с увеличением входных данных...
Как устроен словарь (dict) в Python
Если с объяснением того, что такое дикт и как его юзать у нас проблем не возникает, то вот ответить как они устроены в Python, а при правильном ответе получить следующий: “А как решаются коллизии?”, то уже ответить проблематичнее. Отвечаю сразу на первый вопрос - в Python’e ассоциативный массив реализован с помощью хеш-таблицы (для заметки, в C++ красно-чёрные деревья). В основе всего лежит хеш-функция. И вот многие говорят, что хорошая хеш-функция эта то, что дает более рандомный ответ, но разрабы путона так не считают и их хеша схожи, даже для разных строк. Этим свойством они пользуются для оптимизации, но об этом ниже...