Big O Notation (О-большое) |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2026-06-24 08:53 Сегодня разбираем одну из самых важных тем для любого инженера и разработчика - Big O Notation (О-большое). Если вы готовитесь к алгоритмическим собеседованиям или просто хотите писать более быстрый и оптимальный код, эта шпаргалка обязательно должна быть под рукой. Шпаргалка по алгоритмической сложности Разберем, как растет время выполнения от самых быстрых алгоритмов к самым ресурсоемким: • O(1) - Константное время: Время выполнения не меняется при увеличении данных. Пример: Доступ к элементу массива по индексу или вставка в хеш-таблицу. • O(log n) - Логарифмическое время: Растет логарифмически при увеличении данных. Пример: Бинарный поиск или операции в сбалансированных деревьях. • O(sqrt(n)) - Корневое время: Растет пропорционально квадратному корню размера данных. Пример: Поиск простых чисел в диапазоне (Решето Эратосфена). • O(n) - Линейное время: Растет прямо пропорционально объему данных. Пример: Поиск минимума или максимума в неотсортированном массиве. • O(n log n) - Линеарифмическое время: Комбинация линейного и логарифмического роста. Пример: Эффективные алгоритмы сортировки (Merge Sort, Quick Sort). • O(n^2) - Квадратичное время: Растет квадратично, часто из-за вложенных циклов. Пример: Простые сортировки (Пузырьком, Выбором). • O(n^3) - Кубическое время: Растет кубически. Пример: Умножение плотных матриц в лоб. • O(2^n) - Экспоненциальное время: Время удваивается с каждым новым элементом данных. Пример: Рекурсивное решение задачи коммивояжера. • O(n!) - Факториальное время: Растет факториально, то есть невероятно быстро. Пример: Задачи на генерацию всех возможных перестановок. На практике алгоритмы со сложностью от O(1) до O(n log n) считаются эффективными. Если ваш код работает за O(n^2) или хуже - это повод задуматься об оптимизации (исключение составляют случаи, когда объем данных гарантированно мал). Телеграм: t.me/ainewsline Источник: vk.com Комментарии: |
|