Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

Глава 4. Аналитические инструменты

Урок, который будет усвоен из Суждения 4.3, - то, что, если мы выполняем алгоритм с вложенными петлями, таким образом, что операции во внутреннем увеличении петли к одному каждому разу, тогда общее количество операций квадратное в количестве раз, n, мы выполняем внешнюю петлю. В частности число операций - n2/2 + n/2, в этом случае, который является немного больше, чем постоянный множитель (1/2) временами квадратная функция n2. Другими словами, такой алгоритм только немного лучше, чем алгоритм, который использует n операции каждый раз, когда внутренняя петля выполнена. Это наблюдение могло бы сначала казаться неинтуитивным, но это, тем не менее, верно как показано в рисунке 4.1.

4.1.6 Кубическая функция и другие полиномиалы

Продолжая наше обсуждение функций, которые являются полномочиями входа, мы рассматриваем

кубическая функция,

f (n) = n3,

который назначает на входной n стоимости продукт n с собой три раза. Этот func-

tion появляется менее часто в контексте анализа алгоритма, чем постоянные, линейные, и квадратные функции, ранее упомянутые, но это действительно время от времени появляется.

Полиномиалы

Интересно, функции, которые мы перечислили до сих пор, могут быть рассмотрены как весь являющийся частью

больший класс функций, полиномиалов.

Многочленная функция - функция формы,

f (n) = a0 + a1n + a2n2 + a3n3 + + adnd,

где a0, a1..., объявление константы, названные коэффициентами полиномиала, и

объявление = 0. Целое число d, который указывает на самую высокую власть в полиномиале, называют степенью полиномиала.

Например, следующие функции - все полиномиалы:

f (n) = 2 + 5n + n2

f (n) = 1 + n3 f (n) = 1 • f (n) = n f (n) = n2

Поэтому, мы могли утверждать, что эта книга представляет всего четыре важных используемые функции

в анализе алгоритма, но мы придерживаемся высказывания, что есть семь, так как постоянные, линейные, и квадратные функции слишком важны, чтобы быть смешанными в с другим поли - nomials. Продолжительность, которая является полиномиалами со степенью, d, обычно лучше, чем многочленная продолжительность большей степени.

4.1. Семь функций, используемых в этой книге 159

Суммирование

Примечание, которое появляется снова и снова в анализе структур данных и algo-

rithms - суммирование, которое определено как

b

i = åa f (i) = f (a) + f (+ 1) + f (+ 2) ++ f (b),

где a и b - целые числа и£ b. Суммирование возникает в структуре данных и algo-

анализ rithm, потому что продолжительность петель естественно дает начало суммированию.

Используя суммирование, мы можем переписать формулу Суждения 4.3 как

å1i = n (n + 1). n

i = 2

Аналогично, мы можем написать полиномиал f (n) степени d с коэффициентами a0..., объявление как

d

f (n) =å aini.

i=0

Таким образом примечание суммирования дает нам стенографию способ выразить суммы в - мнущиеся условия, у которых есть регулярная структура.

4.1.7 Показательная функция

Другая функция, используемая в анализе алгоритмов, является показательной функцией,

f (n) = миллиард,

где b - положительная константа, названная основой, и аргументом n является образец. Таким образом, функция f (n) назначает на входной аргумент n стоимость, полученную мульти - сложение основы b отдельно n времена. В анализе алгоритма наиболее распространенная основа для показательной функции - b = 2. Например, если у нас есть петля, которая начинается за - формирование одной операции и затем удваивает число операций, выполненных с каждым повторением, тогда число операций, выполненных в энном повторении, 2n. Кроме того, слово целого числа, содержащее n биты, может представлять все неотрицательное в - тигры меньше, чем 2n. Таким образом показательная функция с основой 2 довольно распространена. Показательная функция также упоминается как функция образца.

У нас иногда есть другие образцы помимо n, однако; следовательно, для нас полезно знать несколько удобных правил для работы с образцами. В частности следующие правила образца довольно полезны.

160