Загрузка страницы

Сложность алгоритма Большое О

Хотите повлиять на темы сюжетов? Вам сюда
https://vk.com/itspherechannel?w=wall-68704273_8%2Fall
Я в ВК https://vk.com/id26420520
Группа в ВК https://vk.com/itspherechannel
Опрос в группе https://vk.com/itspherechannel?w=wall-68704273_3%2Fall

Всем привет как и обещал отснял сюжет посвященный определению временной сложности выполнения алгоритмов. На собеседовании об этом обычно не спрашивают но могут спросить в контексте какой-нибудь другой темы. Например задать такой вопрос “Напишите временную сложность поиска в ArrayList”. Поэтому данный ролик надеюсь будет полезен и подготовит вас к подобного рода вопросам. Про ArrayList и LinkedList можно посмотреть тут а про HashMap тут. Кстати количество аннотаций походу будет расти линейно в зависимости от количества роликов на моем канале)). Не, не будет!)

Я думаю что большинство из вас уже не раз встречали с таково рода обозначениями

f(n) = O(1) константа
f(n) = O(log(n)) логарифмический рост
f(n) = O(n) линейный рост
f(n) = O(n*log(n)) квазилинейный рост
f(n) = O(n^m) полиномиальный рост
f(n) = O(2^n) экспоненциальный рост

Мне кажется не разумным способ просто запоминать какому алгоритму относится тот или иной класс сложности. Гораздо полезнее уметь в уме примерно прикинуть насколько изменится время выполнения при увеличении входных данных(N). Тогда я постараюсь рассказать как это можно сделать.

O(1) - Начнем пожалуй с константной сложности.

Представим что студент Серега в своем тел. справочнике загнул страничку с телефоном его одногруппницы Светки. Это позволяет искать номер Светки в среднем за константное время т. к. нет прямой зависимости от количества номеров или она очень невелика на столько что ей можно пренебречь.

Почему в среднем? Да потому что ему приходилось перебрать определенное количество записей на данной страничке этим числом можно пренебречь также т. к. оно мало.
Примером может служить поиск в хеш-таблице если в одной “корзинке” один объект.

O(log n) - Логарифмическая сложность

С логарифмической сложность уже посложнее. Представим что Серега только познакомился со Светкой. Он знает ее фамилию как он будет искать страничку с ее номером? Он открыл справочник в середине и попал на какую-то запись смотрит а там фамилия начинается на букву которая в алфавите идет раньше чем фамилия Светки. Значит Светка находится во второй половине справочника. Теперь он берет стопку листов справочника где предположительно находится его Светка. И открывает эту стопку тоже по середине и так далее пока не найдет Светку. Понимаете? Получается такой бинарный поиск. Количество сравнений которые ему потребуется сделать будет равняться log по основанию 2 от количества страниц в справочнике.

Видео Сложность алгоритма Большое О канала Будников Александр
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
8 сентября 2014 г. 9:09:15
00:08:33
Другие видео канала
Оценка сложности алгоритма. Сложность алгоритмов. Big O, Большое ООценка сложности алгоритма. Сложность алгоритмов. Big O, Большое ОArrayList, LinkedList. Java собеседованиеArrayList, LinkedList. Java собеседованиеОценка сложности алгоритмов | Компьютерная школа HillelОценка сложности алгоритмов | Компьютерная школа HillelВозьмут ли 30-го на должность java junior разработчика?Возьмут ли 30-го на должность java junior разработчика?Алгоритмы и структуры данных простыми словами. Зачем учить алгоритмы? #codonaftАлгоритмы и структуры данных простыми словами. Зачем учить алгоритмы? #codonaftDeeply Understanding Logarithms In Time Complexities & Their Role In Computer ScienceDeeply Understanding Logarithms In Time Complexities & Their Role In Computer ScienceЛекция 1: Сложность алгоритмовЛекция 1: Сложность алгоритмовАнализ времени работы алгоритмов. О большое, о малое, омега, теттаАнализ времени работы алгоритмов. О большое, о малое, омега, теттаКак готовиться к iOS интервью?Как готовиться к iOS интервью?Принципы ООП. 1. ИнкапсуляцияПринципы ООП. 1. ИнкапсуляцияCS50. Асимптотические обозначенияCS50. Асимптотические обозначенияЭффективный способ изучения java. Мнение о devcolibri.Эффективный способ изучения java. Мнение о devcolibri.Как посчитать сложность алгоритма по BIG O | Самое понятное объяснение!Как посчитать сложность алгоритма по BIG O | Самое понятное объяснение!#16 O(log n) Сложность алгоритма (it-ликбез из тачилы)#16 O(log n) Сложность алгоритма (it-ликбез из тачилы)Жрец, как этап магического становленияЖрец, как этап магического становленияСортировка пузырьком в JavaScriptСортировка пузырьком в JavaScriptАлгоритмы и Структуры Данных. Урок 3: Большое О (Big O Notation). Сложность алгоритма. Часть 1.Алгоритмы и Структуры Данных. Урок 3: Большое О (Big O Notation). Сложность алгоритма. Часть 1.Гарвард CS50 на русском. 1. Короткие видео. 1. Асимптотическая нотацияГарвард CS50 на русском. 1. Короткие видео. 1. Асимптотическая нотацияОценка сложности алгоритмов | О большое | Алгоритмы и структуры данныхОценка сложности алгоритмов | О большое | Алгоритмы и структуры данных1.8.1 Asymptotic Notations Big Oh - Omega - Theta #11.8.1 Asymptotic Notations Big Oh - Omega - Theta #1
Яндекс.Метрика