Асимптотическая сложность алгоритма

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску
Количество операций для алгоритмов разной сложности

Асимптотическая сложность алгоритма — способ оценки вычислительной сложности алгоритма «с точностью до константы», применяемый в теории сложности. Обычно записывается в нотации «большого О».

Широко применяется, так как точная оценка сложности в элементарных операциях часто сложна (в том числе зависит и от того, что принять за элементарную операцию — одно действие в конкретном языке программирования, процессорный такт), а также не имеет смысла при больших объемах входных данных, когда медленнорастущие части временной функции практически перестают влиять на общий объем исполняемой работы.

Чаще всего используется асимптотическая оценка времени работы алгоритма сверху, записываемая как O(f(n)), где n — объем входных данных. Если принять функцию времени работы алгоритма в зависимости от объема входных данных как F(n), то можно сказать, что начиная с определенного числа N для всех n > N выполняется неравенство |F(n)| <= |N*f(n)|, иными словами, с некоторого момента функция F(n) растет не быстрее, чем N*f(n), где N — константа.

Оценки сложности алгоритмов:

  • Логарифмическая сложность — зависит от входных данных n как N*log(n), в частности, таковую сложность имеет операция поиска в индексированном массиве, быстрого возведения в произвольную степень. На практике чаще встречается сложность N*n*log(n).
  • Полиномиальная сложность — зависит от входных данных n как N*n^c, где c — некая конкретная степень. Указывается только старшая степень полинома, так как с ростом n меньшие степени перестают существенно влиять. Например, двойной перебор массива имеет сложность O(n²), реализация метода Шульце для n кандидатов — O(n³).
  • Экспоненциальная сложность — зависит от входных данных n как N*e^n. Использования алгоритмов с такой сложностью стараются избегать, это сложные задачи на графах, сложные операции поиска по нескольким таблицам в MySQL и т. д.

Возможны и более высокие сложности, например N*n!.

Eipi10.gif Хехехеххехехе. Пожилой математик одобряет
НаукиКакоцентризмМарисбери АнимусферЛогика (Второй семестр) • О сути познанияДилемма СкаибыАльберт ЭйнштейнМожет ли ёжик выжить на Луне?СплавыТехнологический ВавилонХалдеиДруг ВигнераВольтВлажностьСкорость звукаАмперБатрахоспермумТехнологияМикроскопДжордж БерклиЭлектрическая ёмкостьАлексей ДударевКарл ЮнгВысшая математикаФизикаЕвгеникаМатанРоссийскаяСопроматСтатистикаФилософия (Детерминизм) • Бремя доказыванияИсаак НьютонЗнатствоГильом ВердонЦимцумМногие знания, многие печалиПритча про слепых и слонаБиологияПердун и ворВ глубине науки скрывается богословиеДавид АйкОсновной вопрос философииГематрияСкоростьРастения — совершенная форма жизни
МыслиЦвета не существуетКонсенсусПлутархВордцелЗаклинатель говнаКладбище вероятностейЧисла, кратные 7Если в космосе нет воздуха, то как тогда горит СолнцеДеление многочлена (полинома) на многочленМажорантаDesmosУравнение ИмперииВладимир АрнольдСтремление к бесконечностиВнешнее происхождение сельского хозяйстваПища для умаМумификацияПлиний СтаршийФома АквинскийМуравьиная фермаАрхимедов винтВладимир ВоеводскийСпособы создания мираНИИМайкл ХарнерТетрактисГерардус МеркаторАсимптотическая сложность алгоритмаМаксим СолохинАкадемия наукФилологияПолиэтиленЛошадиная силаЯдерная трансмутация1864МракобесиеЛекция (Зелёный слоник)Это знать надо! Это классика!Научные мемыТеорииУмное
Люди и организацииИзябретательИлон МаскЯрослав ЗолотарёвГермес ТриждывеличайшийОлег Рыбаченко • Организации (ИТМОМФТИНМУ) • БайронБелоненкоБерезовскийВассерманВербицкийда ВинчиДекартДокинзИнженерКэрроллЛабораторияЛейбницЛуговский (цитатник) • Паскаль • Перельманы (ГригорийЯков) • ПереслегинПятисемитыСаганТейлорТеслаТехнофашистыФейнманХайямХокингЭшерАндрей КурпатовРоджер ПенроузWolfram AlphaАлександр ПушнойСергей ХачатуровЭхнатонАрсений ЯценюкКульт СингулярностиАрхивариусЖак Ив КустоПрофессор БагировNautilus LiveShark-ReferencesИван ИльинЧертологияПол КарусКонцепция взаимоотношений полов Жоры РевазоваРусская наука vs западная наука2 + 2 = 4Наука
ОсобенностиЦЕРНОлег ЗаморинПрофессорРоберт БойльАнаксагорАнаксимандрАнаксимен МилетскийПифагорДемокритФалес МилетскийСократПлатонАристотельЗенонАрхимедЭратосфенГиппократ ГераклидовичПарменидГераклитМайкл БихиДиогенИндуистский университет АмерикиПифагорская школаГеорг ГегельPathofMatthГеоргий ГурджиевАрсен МаркарянПлоскоземельщикиАлан ТьюрингГад СаадАртур ШопенгауэрЖан-Анри ФабрМихаил ЛидинДонорно-акцепторная связьМножествоАлгебраУпрощенное ЕГЭ по математикеЕдиницаЧастотаЧисловая прямаяОседаниеИррациональные числа+=ВычислимостьГеодезияМногомировая интерпретацияИстория наукиПространство-времяВременная линияТипМераПроблема вагонеткиГенри КавендишСуперпозиция
ИнтересностиЧарльз ДарвинЭдвард ХегелерСтолкновение с бессознательнымКолокол нацистовТеория электрической вселеннойГипотеза пурпурной ЗемлиБорис ПоршневНитрид галлияНейлонРене ГенонЕвгений ГоловинЖильбер ДюранЭмиль ЧоранЮлиус ЭволаГерман ВиртТеорема чего-то не тогоЗнаниеМонизмНеподвижный перводвигательФритьоф ШуонМишель ВальсанЯкоб БуркхардтАнанда КумарасвамиФотографии КирлианаСлепой тестДжеймс АндерсонДжон фон НейманТеория игрМеханикаЭнергияВавилонская библиотекаВладимир Вернадский