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

11.6. Упражнения

11.6 Упражнения

Для помощи с упражнениями, пожалуйста, посетите веб-сайт, www.wiley.com/college/goodrich. <www.wiley.com/college/goodrich>

Укрепление

545

R-11.1 Что является лучшим алгоритмом для сортировки каждого следующего: общий

сопоставимые объекты, длинные строки символов, двойная точность floating указывают числа, 32-битные целые числа и байты? Оправдайте свой ответ.

R-11.2 предположим S является списком n битов, то есть, n 0 и 1's. Сколько времени будет он брать к

вид S с алгоритмом вида слияния? Что относительно быстрого вида?

R-11.3 предположим S является списком n битов, то есть, n 0 и 1's. Сколько времени будет он брать к

вид S устойчиво с алгоритмом вида ведра? R-11.4 Дайте полное оправдание Суждения 11.1. R-11.5 В дереве вида слияния, показанном 11.2 в цифрах до 11,4, некоторые края

оттянутый как стрелы. Каково значение нисходящей стрелы? Как насчет восходящей стрелы?

R-11.6 Дайте полное псевдокодовое описание рекурсивного вида слияния al -

gorithm, который берет множество в качестве его входа и выхода.

R-11.7 Покажите что продолжительность алгоритма вида слияния на n-элементе

последовательность - O (n, регистрируют n), даже когда n не власть 2.

R-11.8 предположим нам дают, два n-элемента сортировали последовательности A и B, который должен

не быть рассмотренным как наборы (то есть, A и B может содержать двойные записи). Опишите O (n) разовый метод для вычисления последовательности, представляющей

установитеÈ B (без дубликатов).

R-11.9 Покажите что (X-A) È (X-B) = X- (AÇB), для любых трех наборов X, A, и B.

R-11.10 предположим мы изменяем детерминированную версию алгоритма быстрого вида

так, чтобы, вместо того, чтобы выбрать последний элемент в последовательности n-элемента как

центр, мы выбираем элемент виндексе n/2 ⌋. Что является продолжительностью

из этой версии быстрого вида на последовательности, которая уже сортирована?

R-11.11 Рассмотрите модификацию детерминированной версии быстрого вида al -

gorithm, где мы выбираем элемент виндексе n/2 ⌋ как наш центр. De -

писец вид последовательности, которая вызвала бы эту версию быстрого вида к

управляемый вW (n2) время.

R-11.12 Покажите что продолжительность лучшего случая быстрого вида на последовательности размера

n с отличными элементами O (n, регистрируют n). R-11.13 Опишите рандомизированную версию оперативного быстрого вида в псевдокодексе.

546

Глава 11. Сортировка, Наборы и Выбор Шоу r-11.14, что вероятность, что любой данный входной элемент X принадлежит больше

чем 2 регистрации n подпроблемы в группе i размера, для рандомизированного быстрого вида, в большей части 1/n2.

R-11.15 предположим алгоритм inPlaceQuickSort (Кодовый Фрагмент 11.6) выполнен

на последовательности с двойными элементами. Покажите, что алгоритм все еще боже мой - rectly сортирует входную последовательность, но результат шага дележа может отличаться от описания высокого уровня, данного в Разделе 11.2, и может привести к неэффективности. В частности что происходит в шаге разделения, когда там элементы равны центру? Последовательность E (хранение элементов, равных центру) фактически вычислена? Алгоритм повторяется на подпоследовательностях L и G, или на некоторых других подпоследовательностях? Каков пробег - ning время алгоритма, если все входные элементы равны?

R-11.16 Из n! возможные входы к данному основанному на сравнении алгоритму сортировки,

каково абсолютное максимальное количество входов, которые могли быть сортированы только с n сравнения?

R-11.17 У Беллы есть основанный на сравнении алгоритм сортировки, который сортирует первый k ele-

монетные дворы в последовательности размера n в O (n) время. Дайте большую о характеристику самого большого, которым может быть k?

R-11.18 Стабилен алгоритм вида слияния в Разделе 11.1? Почему или почему нет? R-11.19 Алгоритм, что записи значения ключа видов ключом, как говорят, раскидываются

если, какое-либо время у двух записей ei и e j есть равные ключи, но ei появляется прежде e j во входе, то алгоритм помещает ei после e j в продукции. Опишите a

изменитесь на алгоритм вида слияния в Разделе 11.1, чтобы сделать его разбросом.

R-11.20 Опишите метод вида корня для того, чтобы лексикографически сортировать последовательность S

тройки (k, l, m), где k, l, и m - целые числа в диапазоне [0, N- 1], для

некоторый N³ 2. Как мог эта схема быть расширенным на последовательности d-кортежей (k1, k2..., kd), где каждый ki - целое число в диапазоне [0, N- 1]?

R-11.21 Действительно ли алгоритм вида ведра оперативный? Почему или почему нет?

R-11.22 Дайте входной список в качестве примера, который требует, чтобы вид слияния и вид кучи взяли

O (n регистрируют n), время к виду, но пробеги вида вставки в O (n) время. Что, если Вы полностью изменяете этот список?

R-11.23 Опишите в псевдокодексе, как выполнить сжатие пути на пути

длина h в O (h) время в основанной на дереве структуре союза/находить разделения. R-11.24 Эдвард утверждает, что у него есть быстрый способ сделать сжатие пути в разделении

структура, начинающаяся в узле v. Он помещает v в список L и начинает после родительских указателей. Каждый раз, когда он сталкивается с новым узлом, u, он добавляет u к L и обновляет родительский указатель каждого узла в L, чтобы указать родителю u. Покажите, что алгоритм Эдварда управляет вW (h2) временем на пути длины h.

R-11.25 Опишите оперативную версию быстро-избранного алгоритма в псевдокодексе.