1. Алгоритмы 3 и 4 требуют аккуратного кодирования. Используйте методы верификации программ из главы 4 данной книги для доказательства правильности вашего кода. Аккуратно формулируйте инварианты.
2. Измерьте скорость работы четырех алгоритмов на вашем компьютере и постройте свою табл. 8.1.
3. Мы анализировали алгоритмы с помощью «О-большого». Попробуйте как можно более точно определить количество операций max в каждом из алгоритмов. Дает ли это возможность определить время работы программы? Сколько памяти требуется для работы каждого из алгоритмов?
4. Если элементы входного массива — случайные числа с равномерным распределением на отрезке [-1, 1], каково ожидаемое значение подпоследовательности с максимальной суммой?
5. Для простоты записи в алгоритме 26 мы использовали элемент cumarr[-l]. Как бы вы реализовали это на С?
6. Докажите, что любой правильный алгоритм для вычисления максимальной суммы подпоследовательности должен проверять все п входных элементов. (Некоторые задачи допускают пропуск элементов. Изучите, например, алгоритм Сахе в решении 2.2 и алгоритм Боера-Мура поиска подстроки.)
7. Когда я занялся реализацией алгоритмов, я включил в тестовую программу сравнение результатов работы алгоритмов с результатом работы четвертого алгоритма. Программа сообщала, что в моих реализациях алгоритмов 26 и 3 были ошибки. Изучив значения ответов, я увидел, что они не были равны друг другу в точности, но были достаточно близки. В чем было дело?
8. Измените алгоритм 3 (алгоритм «разделяй и властвуй») так, чтобы он выполнялся с линейной скоростью даже в худшем случае.
9. Мы положили максимальную сумму массива из отрицательных чисел равной нулю. Предположим, что мы положили бы ее равной наибольшему элементу. Как бы вы изменили тексты программ?
Опубликовал vovan666
April 17 2013 00:00:49 ·
0 Комментариев ·
2611 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.