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

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

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

В этой секции мы briefly обсуждают семь самых важных функций, используемых в анализе алгоритмов. Мы используем только эти семь простых функций для почти всего анализа, который мы делаем в этой книге. Фактически, секции, которые используют функцию кроме одного из этих семи, отмечены со звездой (), чтобы указать, что они дополнительные. В дополнение к этим семи фундаментальным функциям Приложение A содержит список других полезных математических фактов, которые применяются в контексте анализа алгоритма и структуры данных.

4.1.1 Постоянная функция

Самая простая функция, о которой мы можем думать, является постоянной функцией. Это - функция,

f (n) = c,

для некоторого фиксированного постоянного c, такого как c = 5, c = 27 или c = 210. Таким образом, для любого argu-ment n, постоянная функция f (n) назначает стоимость c. Другими словами, не имеет значения, какова ценность n, f (n) всегда быть равным постоянной величине c.

Так как мы больше всего интересуемся функциями целого числа, самым фундаментальным доводом «против» - функция стента - g (n) = 1, и это - типичная постоянная функция, которую мы используем в этой книге. Обратите внимание на то, что любая другая постоянная функция, f (n) = c, может быть написана как константа c времена g (n). Таким образом, f (n) = cg (n) в этом случае.

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

4.1.2 Функция логарифма

Один из интересных и иногда даже удивительных аспектов анализа

структуры данных и алгоритмы - повсеместное присутствие функции логарифма, f (n) = logb n, для некоторого постоянного b> 1. Эта функция определена следующим образом:

x = logb n, если и только если основной обмен = n.

По определению, logb 1 = 0. Стоимость b известна как основа логарифма.

Вычисляя функцию логарифма точно для любого целого числа n включает использование исчисления, но мы можем использовать приближение, которое достаточно хорошо для наших поз pur-без исчисления. В частности мы можем легко вычислить самое маленькое целое число, больше, чем, или равняться loga n, так как это число равно количеству раз

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

мы можем разделить n на, пока мы не получаем число, меньше чем или равное 1. Для экзамена - ple, эта оценка log3 27 равняется 3, с тех пор 27/3/3/3 = 1. Аналогично, эта оценка log4 64 равняется 3, с тех пор 64/4/4/4 = 1, и это приближение к log2 12 равняется 4, с тех пор 12/2/2/2/2 = 0,75£ 1. Эта основа 2 приближения возникает в анализе алгоритма,

так как общая операция во многих алгоритмах должна неоднократно делить вход на

половина.

Действительно, так как компьютеры хранят целые числа в наборе из двух предметов, наиболее распространенная основа для функции логарифма в информатике равняется 2. Фактически, эта основа так распространена, что мы, как правило, оставляем ее, когда это 2. Таким образом, для нас,

зарегистрируйте n = log2 n.

Мы отмечаем, что у большинства переносных калькуляторов есть отмеченная РЕГИСТРАЦИЯ кнопки, но это, как правило, для вычисления логарифма, базируются 10, не базируются 2.

Есть некоторые важные правила для логарифмов, подобных правилам образца.

Суждение 4.1 (Правила Логарифма): Учитывая действительные числа a> 0, b> 1, c> 0

и d> 1, мы имеем:

1. logb ac = logb + logb c

2. счет logb = logb- logb c

3. logb ac = c logb a

4. logb = (logd a) / logd b 5. blogd = alogd b

Кроме того, как письменная стенография, мы используем logc n, чтобы обозначить функцию (зарегистрируйте n), c.

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

Пример 4.2: Мы демонстрируем ниже некоторых интересных применений loga-

rithm управляет от Суждения 4.1 (использование обычного соглашения, что основа логарифма равняется 2, если это опущено).

• регистрация (2n) = регистрируется 2 +, регистрируются, n = 1 + регистрируют n по правилу 1

• регистрация (n/2) = регистрируется, n- регистрируются 2 =, регистрируют n- 1, по правилу 2 • зарегистрируйте n3 = 3 регистрации n по правилу 3 • зарегистрируйтесь 2n = n, регистрируются 2 = n 1 = n, по правилу 3 • log4 n = (регистрируют n) / регистрируется 4 = (зарегистрируйте n),/2, по правилу 4 • 2logn = nlog2 = n1 = n, по правилу 5

На практике мы отмечаем, что правило 4 дает нам способ вычислить основу 2

логарифм на калькуляторе, у которого есть основа 10 кнопок логарифма, БРЕВНО, для

log2 n = РЕГИСТРИРУЕТСЯ, n / РЕГИСТРИРУЮТСЯ 2.